Débogueurs : Les notions de base

Publié par

Le développement de code pour un projet logiciel a tendance à suivre une procédure plutôt standard : 1) Vous écrivez le code source, en général dans un langage de programmation de haut niveau comme C++ ou Java, utilisant un langage et des instructions que vous pouvez comprendre. Dans un projet de grande taille, le code est généralement écrit en un certain nombre de modules pour plus de facilité de compréhension. 2) Vous combinez vos modules dans un code unique de grande taille à l'aide d'un compilateur logiciel qui traduit votre texte lisible par un humain en un code objet pouvant être exécuté par le microcontrôleur. 3) Vous chargez votre code objet dans la mémoire de l'ordinateur et vous commencez à exécuter le logiciel. 4) Il ne fonctionne pas.

Ne vous inquiétez pas, c'est tout à fait normal. En fait, un logiciel d'entreprise commercial contient généralement 20 à 30 erreurs, ou bogues, par millier de lignes de code même après sa sortie. Les erreurs « fatales » entraînent l'arrêt de l'exécution du programme ; les erreurs non fatales laissent le programme s'exécuter, mais les résultats ne sont pas ceux que vous attendez.

Si le programme ne fait pas ce que vous souhaitez, quelle est l'étape suivante ? C'est là qu'un autre logiciel vital, le débogueur, intervient.

Le débogage est le processus d'identification et de correction des bogues dans un code de programme d'ordinateur. Pour déboguer un programme, il faut commencer avec un fragment de code erroné, isoler les sources des éventuels problèmes, puis les corriger.

Un débogueur est un programme qui exécute un autre programme (votre code), en vous permettant d'exercer un certain niveau de contrôle sur le code au fur et à mesure qu'il s'exécute et d'examiner des éléments particuliers quand il y a un problème.

Fonctions de base d'un débogueur

Lorsque vous exécutez un programme contenant des erreurs, il y a plusieurs choses que vous devez faire ou savoir :

  • Quelle instruction ou expression le programme était-il en train d'exécuter au moment d'une erreur fatale ?
  • Si une erreur fatale se produit pendant l'exécution d'une fonction, quelle est la ligne du programme contenant l'appel de cette fonction ?
  • Quelles sont les valeurs de variables de programme (y compris les paramètres) à un point particulier lors de l'exécution du programme ?
  • Quelle est le résultat de l'évaluation d'une expression particulière à un point donné du programme ?
  • Quelle est la séquence d'instructions effectivement exécutée dans un programme ?

Ces fonctions nécessitent que vous soyez en mesure d'examiner les données du programme, d'obtenir une liste des fonctions en cours d'exécution, de définir des points d'arrêt où l'exécution du programme est suspendue pour permettre l'examen de ses données et de parcourir les instructions pour voir ce qui se passe effectivement.

Pour vous donner un meilleur aperçu du fonctionnement du code d'origine, presque tous les débogueurs fonctionnent au niveau symbolique ou au niveau du code source. En substance, ils donnent l'impression que vous exécutez des instructions C++ ou Java dans votre programme source plutôt que le code machine dans lequel celles-ci sont converties.

Lors du débogage d'un code, il est généralement nécessaire d'examiner plusieurs éléments simultanément : le code qui s'exécute, les registres matériels dans le microcontrôleur, des emplacements de mémoire spécifiques et des points d'arrêt. De ce fait, vous souhaiterez afficher plusieurs fenêtres dans un format d'interface utilisateur graphique (GUI). La figure 1 ci-dessous montre une capture d'écran de débogueur, annotée pour mettre en évidences les fonctionnalités disponibles.

 

Figure 1 : Un écran de débogueur pour l'IDE Eclipse, montrant plusieurs fenêtres et leurs fonctions. (Source : Rice University)

Support matériel pour les débogueurs

Parfois, il existe un autre programme, l'émulateur, qui simule le microcontrôleur et vous n'avez donc pas besoin d'un matériel réel, mais pour les systèmes intégrés, vous exécutez normalement votre code sur le kit de développement du microcontrôleur ou sur la carte prévue pour la production.

La plupart des microcontrôleurs comprennent des fonctionnalités spécialement conçues pour faciliter le débogage, telles que la prise en charge du matériel pour parcourir un programme instruction par instruction, des modes de test spéciaux et la prise en charge de points d'arrêt.

Packages d'outils logiciels

Dans de nombreux cas, les débogueurs, avec d'autres outils de développement logiciels, sont regroupés en un ensemble unique appelé environnement de développement intégré (IDE). De nombreux fabricants de microcontrôleurs fournissent des IDE pour leurs produits et des IDE sont également disponibles auprès de fournisseurs tiers, voire même dans la communauté des logiciels libres. L'IDE Eclipse illustré dans la figure 1 est un produit libre (open source).

Les IDE peuvent être des produits autonomes ou (lorsqu'ils sont offerts par un fabricant) groupés avec du matériel de développement pour un microcontrôleur particulier. Afin de vous aider à démarrer, Arrow offre une sélection de débogueurs, de kits de développement et d'IDE provenant d'un grand nombre de fabricants.

Actualité

Sorry, your filter selection returned no results.

Nous avons mis à jour notre politique de confidentialité. Prenez un moment pour lire les changements. En cliquant sur "J'accepte", vous acceptez la clause de confidentialité d'Arrow Electronics ainsi que les conditions d'utilisation.

Notre site Internet place des cookies sur votre appareil pour améliorer votre expérience et pour améliorer notre site. Pour en savoir plus sur les cookies que nous utilisons et la façon de les désactiver, cliquez ici. Des cookies et des technologies de suivi peuvent être utilisés à des fins de marketing. En cliquant sur « Accepter », vous consentez au placement de cookies sur votre appareil et à notre utilisation de technologies de suivi. Cliquez sur « En savoir plus » pour de plus amples informations et instructions sur la façon de désactiver les cookies et les technologies de suivi. Même si l'acceptation des cookies et technologies de suivi est volontaire, leur désactivation peut entraîner un mauvais fonctionnement du site Internet et certaines publicités peuvent être moins pertinentes pour vous. Nous respectons votre confidentialité. Lisez notre politique de confidentialité ici.