Thèse de Maximilian Willembrinck

Une approche de débogage interactive basée sur des time-traveling queries

Le debugging est une activité incontournable du développement logiciel. Il s'agit d'une tâche ardue qui nécessite une grande quantité de temps et de ressources, et elle exige que les développeurs aient une compréhension approfondie de leurs programmes. Pour ce faire, les développeurs explorent l'exécution de leurs programmes à l'aide de debuggers interactifs. Cependant, cette activité est souvent répétitive et coûteuse. Afin de simplifier l'exploration interactive des programmes, nous proposons les Time-traveling Queries (TTQs). TTQs est un mécanisme qui explore automatiquement les exécutions de programmes en utilisant un Time-traveling Debugger pour recueillir des données d'exécution. Ce mécanisme permet une nouvelle approche de debugging, où les données collectées permettent de voyager dans le temps à travers les états d'exécution, facilitant ainsi l'exploration des exécutions de programmes. Nous avons élaboré un ensemble de questions clés basées sur des questions typiques que les développeurs se posent lorsqu'ils essaient de comprendre les programmes. Pour évaluer l'impact de nos requêtes sur les activités de compréhension des programmes, nous avons mené une étude empirique impliquant 34 utilisateurs. Nos résultats montrent que, par rapport aux outils de debugging traditionnels, les TTQs améliorent considérablement la précision des développeurs tout en réduisant le temps et les efforts nécessaires pour mener à bien les tâches de compréhension des programmes. Malgré les résultats prometteurs que notre approche a montrés, elle présente une exigence cruciale: elle nécessite l'utilisation d'un Time-traveling Debugger pour être opérationnelle. Cependant, il est important de noter que les debuggers de ce genre ne sont pas disponibles pour tous les systèmes. Dans les systèmes où plusieurs programmes sont exécutés dans une mémoire partagée, les Time-traveling Debuggers se heurtent à la complexité de délimiter les effets en mémoire causés par les opérations de voyage dans le temps. Pour résoudre ce problème, nous avons mené une étude approfondie des propriétés essentielles requises pour adapter les solutions de voyage dans le temps à ce type de système. En utilisant ces propriétés comme guide, nous avons introduit deux Time-traveling Debuggers spécifiquement conçus pour Pharo, un système qui repose sur une mémoire partagée. Nous avons ensuite évalué l'importance de ces propriétés au travers de deux expériences, démontrant ainsi leur rôle crucial dans la réalisation d'opérations précises de voyage dans le temps. Enfin, nous avons procédé à une analyse approfondie des solutions existantes pour évaluer leur applicabilité dans le contexte des systèmes à mémoire partagée.

Jury

Mme Anne ETIEN Université de Lille Directrice de thèse. Mme Elisa GONZALEZ BOIX VUB SoftLab Rapporteure. M. Walter RUDAMETKIN Irisa - Université Rennes 1 Examinateur. M. Éric LE PORS Thales DMS Brest Examinateur. M. Steven COSTIOU Centre Inria de l'Université de Lille Examinateur. M. Christophe DONY Département Informatique, Université de Montpellier Rapporteur.

Thèse de l'équipe EVREF soutenue le 21/11/2023