NTSD

NTSD

Débogueur

Wiktprintable without text.svg

Voir « débogueur » sur le Wiktionnaire.

Un débogueur (en anglais, debugger) est un logiciel qui permet de déboguer, c'est-à-dire d'aider le programmeur à détecter des bogues dans un programme (il peut aussi servir à tester ce dernier).

Sommaire

Utilisation

Le programme à déboguer est exécuté à travers le débogueur et s'exécute normalement. Le débogueur offre alors au programmeur la possibilité de contrôler l'exécution du programme, en lui permettant par divers moyens de stopper (mettre en pause l'exécution du programme) et d'observer par exemple le contenu des différentes variables en mémoire. L'état d'exécution peut alors être observé afin, par exemple, de déterminer la cause d'une défaillance.

Quand l'exécution d'un programme est stoppée, le débogueur affiche la position courante d'exécution dans le code source original si celui-ci est un source-level debugger ou symbolic debugger. Si c'est un low-level debugger ou un machine-language debugger, il montre la ligne désassemblée.

De nombreux debogueurs permettent, en plus de l'observation de l'état des registres processeurs et de la mémoire, de les modifier avant de rendre la main au programme débogué. Ils peuvent alors être utilisés pour localiser certaines protections logicielles et les désactiver, amenant à la conception d'un crack. Ainsi, certains logiciels, connaissant le fonctionnement des débogueurs et voulant empêcher de telles modifications, mettent en place des techniques antidébogage (anti debugging tricks).

Techniques

Les outils offerts par les débogueurs dépendent essentiellement du langage de programmation (utilisé pour développer le programme à déboguer) pour lequel il a été conçu. Néanmoins, la grande majorité des débogueurs offrent des outils similaires.

Outils pour stopper (mettre en pause) l'exécution du programme

  • commande d'arrêt manuel : le programmeur peut décider à tout moment de stopper l'exécution
  • point d'arrêt : placé à un endroit spécifique du programme (généralement dans le code source), il indique au débogueur d'arrêter l'exécution lorsqu'elle atteindra cet endroit
  • point d'arrêt conditionné : comme le point d'arrêt, mais avec une condition supplémentaire (comme le nombre de passages sur ce point d'arrêt par exemple)
  • point d'observation (watch) : permet d'arrêter l'exécution du programme sur la condition de la modification d'une variable

Outils pour piloter l'exécution du programme

  • pas-à-pas : exécution instruction par instruction
    • pas-à-pas sommaire : une instruction est exécutée, dans le programme principal, à chaque fois que le programmeur le demande
    • pas-à-pas détaillé : comme le pas-à-pas sommaire, sauf que le pas-à-pas entre aussi dans les fonctions
    • avec cadencement : à intervalles périodiques, une instruction est exécutée (cela permet de ralentir l'exécution du programme afin qu'elle puisse être suivie de près par l'œil humain)
  • retour en arrière : revenir à l'instruction précédente, en retrouvant l'état précédent (fonctionnalité assez rare)

Outils pour observer l'état du programme

  • observation d'une variable
  • observation d'une zone mémoire
  • observation d'un registre du microprocesseur
  • observation de la pile d'appel (backtrace)
  • observation du code source avec point d'exécution actuel
  • observation du code assembleur (sauf langage interprété) avec point d'exécution actuel
  • trace : permet d'observer des informations en différé, sans stopper l'exécution du programme

En outre, le débogueur permet généralement de modifier l'état du programme, lorsque son exécution est stoppée :

Débug à distance, débug croisé

Le debug croisé, ou debogage croisé, consiste à déboguer un logiciel à distance et souvent pour une architecture cible différente du poste de développement.

Débogueur Noyau

Le déboguage d'un Noyau ou d'un pilote d'un système d'exploitation nécessite des outils adaptés à cette tâche particulièrement sensible. En particulier, ce déboguage se fait habituellement à distance par liaison série (mais parfois par Ethernet) car le débogueur prenant le contrôle total du noyau, la machine cible devient alors inutilisable (se fige totalement à chaque point d'arrêt).

Voir par exemple le débogueur kgdb intégré au noyau Linux.

Débogueurs connus

Ouvrage de référence

  • Jonathan B. Rosenberg, How Debuggers Work: Algorithms, Data Structures, and Architecture, John Wiley & Sons, (ISBN 0-471-14966-7)
  • Portail de la programmation informatique Portail de la programmation informatique
Ce document provient de « D%C3%A9bogueur ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article NTSD de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Transcendental Meditation technique — This article is about the technique. For the movement, see Transcendental Meditation movement. The Transcendental Meditation technique is a specific form of mantra meditation[1] often referred to as Transcendental Meditation. It was introduced in …   Wikipedia

  • WinDbg — Infobox Software name = WinDbg caption = developer = Microsoft latest release version = 6.9.3.113 latest release date = April 29, 2008 operating system = Microsoft Windows genre = Debugger license = Commercial website =… …   Wikipedia

  • PACTOR — is a radio modulation mode used by amateur radio operators, marine radio stations, and radio stations in isolated areas to send and receive digital information via radio. A robust network of PACTOR stations has been established to relay data… …   Wikipedia

  • Abreviations en informatique N — Abréviations en informatique N NAB : Not A Bug NAD : Network Access Device NAN : Not A Number NAND : Not AND, porte ET négative NAS : Network Attached Storage NAT : Network address translation NCSA : National center for… …   Wikipédia en Français

  • Abréviations En Informatique N — NAB : Not A Bug NAD : Network Access Device NAN : Not A Number NAND : Not AND, porte ET négative NAS : Network Attached Storage NAT : Network address translation NCSA : National center for supercomputing applications NCP  …   Wikipédia en Français

  • Abréviations en informatique N — NAB : Not A Bug NAD : Network Access Device NAN : Not A Number NAND : Not AND, porte ET négative NAS : Network Attached Storage NAT : Network address translation NCSA : National center for supercomputing applications NCP  …   Wikipédia en Français

  • Abréviations en informatique n — NAB : Not A Bug NAD : Network Access Device NAN : Not A Number NAND : Not AND, porte ET négative NAS : Network Attached Storage NAT : Network address translation NCSA : National center for supercomputing applications NCP  …   Wikipédia en Français

  • WinDbg — Développeur Microsoft Dernière version …   Wikipédia en Français

  • Matt Levine — (l) and Jeremy Piven (r) Born February 17, 1982 (1982 02 17) (age 29) Brooklyn, New York, United States …   Wikipedia

  • Thierry bernard-gotteland — est un artiste contemporain français né en 1974, vivant et travaillant entre le Vietnam et la France. Sommaire 1 Biographie 2 Expositions 2.1 à venir 2.2 Expositions personne …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”