Le débogueur GDB est un outil indispensable pour la mise au point de programmes, a fortiori dans le cas du développement croisé (mise au point à distance ou « remote debug »). Dans cet article, nous allons voir comment mettre en place différentes solutions suivant plusieurs cas de figure (programme en espace utilisateur, noyau Linux statique ou pilote en espace noyau). Afin de permettre au plus grand nombre de lecteurs de tester les exemples décrits, nous utiliserons l’émulateur QEMU (et Buildroot) pour les démonstrations.
La mise au point d'un programme n'est jamais une tâche aisée. Elle devient encore plus problématique lorsqu’on doit la réaliser à distance (sur une cible différente de l'environnement de développement). Dans le cas d'un programme en espace utilisateur, la procédure reste relativement simple et les contraintes matérielles sont minimes, car les composants à installer sont uniquement des outils logiciels. Il en est tout autrement si l’on doit mettre au point le noyau Linux (statique), un pilote de périphérique, un programme exécuté sur un RTOS (OS temps réel) ou un exécutable « bare metal ». Dans ce cas, l’utilisation d’une sonde matérielle (JTAG) est le plus souvent nécessaire.
Dans cet article, nous allons donc décrire la mise en place d'un environnement de mise au point basé sur GDB. Le célèbre débogueur sera utilisé en mode distant soit dans le cas simple d'un programme en espace utilisateur (avec l’agent gdbserver exécuté sur la cible)...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première