Debogage causal pour systèmes concurrents – DCore
Débogage causal de programmes concurrents
Débogage causal de programmes concurrents Erlang
Deux outils de débogage causal
Avec l'importance croissante du logiciel dans les systèmes embarqués et les systèmes critiques, l'occurrence de bogues peut mettre en danger la vie d'être humains, menacer l'environnement, et occasionner de substantielles pertes financières. En dépit du développement des outils et techniques de vérification ou de test, le débogage constitue toujours une technique essentielle dans la production de logiciel. Malheureusement, les techniques classiques de débogage ne conviennent plus en présence de grands systèmes concurrents et répartis. Le projet DCore vise à développer les sous-bassements théoriques et à prototyper une nouvelle forme de débogage concurrent et réparti, appelé 'débogage causal'. Brièvement, le débogage causal combine deux nouveaux types d'outils:<br />1/ Un moteur d'exécution réversible, qui permet aux programmeurs de revenir en arrière ou de rejouer l'exécution d'un programme concurrent ou réparti, d'une façon à la fois précise et efficace (seuls les fils d'exécution impliqués par un retour en arrière ou un rejeu sont impactés).<br />2/ Un moteur d'analyse causale, qui permet aux programmeurs d'analyser les exécutions d'un programme concurrent et réparti, en posant de questions du style «quelles sont les causes de cet état de programme, ou de cette violation de propriété ?«, et qui permet l'examen précis et interactif d'exécutions passées ou potentielles d'un programme.
TBD
TBD
TBD
5 articles de journaux, 11 publications à des conférences internationales.
Avec l'importance croissante du logiciel dans les systèmes embarqués et les systèmes critiques, l'occurrence de bogues peut mettre en danger la vie d'être humains, menacer l'environnement, et occasionner de substantielles pertes financières. En dépit du développement des outils et techniques de vérification ou de test, le débogage constitue toujours une technique essentielle dans la production de logiciel. Malheureusement, les techniques classiques de débogage ne conviennent plus en présence de grands systèmes concurrents et répartis.
Le projet DCore vise à développer les sous-bassements théoriques et à prototyper une nouvelle forme de débogage concurrent et réparti, appelé 'débogage causal'. Brièvement, le débogage causal combine deux nouveaux types d'outils:
1/ Un moteur d'exécution réversible, qui permet aux programmeurs de revenir en arrière ou de rejouer l'exécution d'un programme concurrent ou réparti, d'une façon à la fois précise et efficace (seuls les fils d'exécution impliqués par un retour en arrière ou un rejeu sont impactés).
2/ Un moteur d'analyse causale, qui permet aux programmeurs d'analyser les exécutions d'un programme concurrent et réparti, en posant de questions du style "quelles sont les causes de cet état de programme, ou de cette violation de propriété ?", et qui permet l'examen précis et interactif d'exécutions passées ou potentielles d'un programme.
Bien que relié aux techniques connues de '"program slicing" et aux notions de "débogueur intelligent" bien documentées dans la littérature, nos deux moteurs de débogage causal s'appuieront de façon déterminante sur les résultats obtenus par des membres du projet dans le cadre du projet ANR REVER, sur la sémantique causale de langages concurrents et des langages concurrents réversibles, ainsi que sur les travaux récents par des membres du projet sur l'interprétation abstraite, les explications causales et l'analyse contrefactuelle de fautes dans des systèmes concurrents.
Le projet vise avant tout les systèmes logiciels à plusieurs fils d'exécution, multi-cœurs et multi-processeurs et les erreurs logicielles fonctionnelles, c'est à dire les erreurs qui se produisent dans les exécutions concurrentes à cause de fautes logicielles qui l'empêchent de remplir sa fonction attendue. Les systèmes distribués, qui peuvent être impactés par des pannes de réseau et de sites distants ne sont pas une cible immédiate de DCore, bien que la technologie développée dans le projet devrait constituer une contribution importante vers le débogage distribué. De même, nous ne visons pas les erreurs de performance ou de sécurité, qui posent des problèmes spécifiques et nécessitent d'autres types d'instrumentation, bien que la technologie DCore devrait être une contribution essentielle aussi dans ces domaines.
Coordination du projet
Gregor Goessler (Centre de Recherche Inria Grenoble - Rhône-Alpes)
L'auteur de ce résumé est le coordinateur du projet, qui est responsable du contenu de ce résumé. L'ANR décline par conséquent toute responsabilité quant à son contenu.
Partenaire
IRIF Institut de Recherche en Informatique Fondamentale
Inria Paris Centre de Recherche Inria de Paris
Inria Grenoble Rhône-Alpes Centre de Recherche Inria Grenoble - Rhône-Alpes
Aide de l'ANR 605 686 euros
Début et durée du projet scientifique :
mars 2019
- 48 Mois