(gdb) break *0x972

Debugging, GNU± Linux and WebHosting and ... and ...

Thesis Defense Invitation

J'ai le plaisir de vous inviter à ma soutenance de thèse intitulée: Programming-Model Centric Debugging for Multicore Embedded Systems (Mise au point centrée sur le modèle de programmation pour les systèmes embarqués multicœurs)

La soutenance aura lieu le lundi 3 février à 10h30 à l'amphithéâtre F22, dans bâtiment F de l'UFR IM²AG, 60 rue de la Chimie, Domaine Universitaire de Saint-Martin-d’Hères, 38041 Grenoble

Vous êtes également conviés au pot qui suivra.

Cordialement,

Kevin Pouget


Vous trouverez la composition de jury et le résumé ci-dessous.

M. Jean-François MEHAUT UJF-CEA/LIG Directeur de thèse M. Miguel SANTANA STMicroelectronics CoDirecteur de thèse M. Radu PRODAN University of Insbruck Rapporteur M. François BODIN Irisa Rapporteur M. Rainer LEUPERS RWTH AACHEN UNIVERSITY Examinateur M. Noël DE PALMA University Joseph Fourier Examinateur

Mots-clés : Programmation multicœurs,Informatique embarquée,Mise au point,

Abstract:

In this thesis, we propose to study interactive debugging of applications running on embedded systems Multi-Processor System on Chip (MPSoC). A literature study showed that nowadays, the design and development of these applications rely more and more on programming models and development frameworks. These environments gather established algorithmic and programming good-practices, and hence speed up the development process of applications running on MPSoC processors. However, sound programming models are not always sufficient to reach or approach error-free codes, especially in the case of dynamic programming, where they offer little to no help. Our contribution to lighten these challenges consists in a novel approach for interactive debugging, named Programming Model-Centric Debugging, as well as a prototype debugger implementation. Model-centric debugging raises interactive debugging to the level of programming models, by capturing and interpreting events generated during the application execution (e.g. through breakpointed API function calls). We illustrate how we applied this approach to three different programming models, software components, dataflow and kernel-based programming. Then, we detail how we developed a debugger prototype based on GDB, for STMicroelectronics’s STHORM programming environment. STHORM development toolkit provides supportive environments for component, dataflow and kernel-based programming. We also demonstrate how to tackle software debugging with our debugger prototype through four case studies: an augmented reality feature tacker built with components, a dataflow implementation of the H.264 video decoding standard and two scientific HPC computing applications.

Résumé :

Dans cette thèse, nous proposons d'étudier le débogage interactif d'applications pour les systèmes embarqués MPSoC (Multi-Processor System on Chip). Une étude de l'art a montrée que la conception et le développement de ces applications reposent de plus en plus souvent sur des modèles de programmation et des frameworks de développement. Ces environnements définissent les bonnes pratiques, tant au niveau algorithmique qu'au niveau des techniques de programmation. Ils améliorent ainsi le cycle de développement des applications destinées aux processeurs MPSoC. L'utilisation de modèles de programmation ne garantit cependant pas que les codes pourront être exécutés sans erreur, en particulier dans le cas de la programmation dynamique, où ils offrent très peu d'aide a la vérification. Notre contribution pour résoudre ces challenges consiste en une nouvelle approche pour le débogage interactif, appelée Programming Model-Centric Debugging, ainsi qu'une implémentation d'un prototype de débogueur. Le débogage centré sur les modèles rapproche le débogage interactif du niveau d'abstraction fourni par les modèles de programmation, en capturant et interprétant les évènements générés pendant l'exécution de l'application. Nous avons appliqué cette approche sur trois modèles de programmation, basés sur les composants logiciels, le dataflow et la programmation d'accélérateur par kernels. Ensuite, nous détaillons comment nous avons développé notre prototype de débogueur, basé sur GDB, pour la programmation de la plate-forme STHORM de STMicroelectronics. Nous montrons aussi comment aborder le débogage basé sur les modèles avec quatre études de cas : un code de réalité augmentée construit à l'aide de composants, une implémentation dataflow d'un décodeur vidéo H.264 et deux applications de calcul scientifique.