CE25 - Infrastructures de communication hautes performances (réseau, calcul et stockage), Sciences et technologies logicielles

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

Liens utiles

Explorez notre base de projets financés

 

 

L’ANR met à disposition ses jeux de données sur les projets, cliquez ici pour en savoir plus.

Inscrivez-vous à notre newsletter
pour recevoir nos actualités
S'inscrire à notre newsletter