Mise au point à distance avec GDB

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
111
Mois de parution
novembre 2020
Domaines


Résumé

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)...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Neuropsydia : un module Python pour les neuropsychologues

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

Il existe peu d’outils permettant de créer « simplement » du matériel d’évaluation neuropsychologique. Neuropsydia est un outil qui nécessite un minimum de connaissances en informatique, mais permet un gain de temps considérable, si l’on accepte d’écrire quelques lignes de code Python.

Application réseau avec Erlang : utilisation du protocole UDP

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

La société Ericsson, pionnière dans le domaine des télécommunications, a été à l’origine de la création du langage Erlang. La bibliothèque standard offre toutes les méthodes pour gérer les connexions réseau, que ce soit pour créer son protocole au-dessus de TCP, UDP ou encore TLS, mais aussi en réutilisant des implémentations d’ores et déjà existantes au sein de l’écosystème fourni avec la release.

Persistance et objets en C++

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
114
Mois de parution
mai 2021
Domaines
Résumé

Au travers de deux articles [1-2] sur les principes de l’orienté objet en C++, nous avions abordé encapsulation, héritage, et polymorphisme. Nous proposons dans ce nouvel article les classes de base pour gérer la persistance d’objets dans des fichiers. Ces classes utilisent les principes énoncés ci-dessus et présentent des stratégies via la généricité. Un exemple de stratégie pour stocker en binaire pourra être redéfini pour d’autres stratégies, comme un stockage en XML.

Intégration des alertes de Nagios dans Grafana

Magazine
Marque
GNU/Linux Magazine
Numéro
248
Mois de parution
mai 2021
Domaines
Résumé

Vous avez succombé à l’esthétique soignée des tableaux de bord de Grafana, mais vous ne pouvez pas vous passer de l’écran d’alertes du vénérable Nagios ! Alors, est-il possible de faire cohabiter ces deux produits ? Avec un peu de code Python, cela devrait être possible !