Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Débogueur — Wikipédia
Débogueur — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis Débogage)
Page d’aide sur l’homonymie

Ne doit pas être confondu avec Désassembleur ou Décompilateur.

Débogueur

Description de l'image Winpdb-1.3.6.png.
Informations
Type Type de logiciel (en)Voir et modifier les données sur Wikidata

modifier - modifier le code - voir Wikidata (aide)

Un débogueur ou débugueur (de l'anglais debugger) est un logiciel qui aide un développeur à analyser les bugs d'un programme. Pour cela, il permet d'exécuter le programme pas-à-pas — c'est-à-dire le plus souvent ligne par ligne —, d'afficher la valeur des variables à tout moment et de mettre en place des points d'arrêt sur des conditions ou sur des lignes du programme.

Il s'agit de l'application à la programmation informatique du processus de troubleshooting.

Utilisation

[modifier | modifier le code]

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é d'observer et de contrôler l'exécution du programme, en lui permettant par divers moyens de l'observer, de la stopper (mettre en pause l'exécution du programme) et de la changer. Par exemple, la pile d’exécution et le contenu des variables en mémoire peuvent être observés, et la valeur des variables peut être changée pour altérer le flot de contrôle du programme 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 pour le débogage formel (en) et le débogage au niveau source. Le débogueur de bas niveau ou de niveau machine montre la ligne désassemblée.

De nombreux débogueurs 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

[modifier | modifier le code]

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

[modifier | modifier le code]
  • 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

[modifier | modifier le code]
  • 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)
  • redémarrage de la fonction courante (drop frame) : abandon de l'exécution actuelle de la fonction courante et démarrage d'une nouvelle exécution de la fonction courante
  • 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

[modifier | modifier le code]
  • 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 :

  • modification d'un registre
  • modification d'une variable
  • modification d'une zone mémoire

Débug à distance, débug croisé

[modifier | modifier le code]

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

Débogueur Noyau

[modifier | modifier le code]

Le débogage 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ébogage 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

[modifier | modifier le code]
  • adb, Android Debug Bridge ;
  • AntiC ;
  • bashdb, un débogueur du Bourne-Again shell indépendant du projet GNU ;
  • Broadway ;
  • CodeView, un débogueur distribué avec la solution intégrée Microsoft Visual Studio Debugger ;
  • DAEDALUS ;
  • DBX, un débogueur distribué avec les premières versions du système Berkeley Unix ;
  • D.U.M.A Detect Unintended Memory Access - le fork de Electric Fence ;
  • Dynamic debugging tape (DDT), and ODT ;
  • DuxDebugger — Debugger Disassembler for Windows 64-bit ;
  • Electric Fence ;
  • Firebug ;
  • GDB (GNU Debugger), le débogueur du projet GNU ; on peut éventuellement l’associer à gdbserver en débug croisé ;
  • CUDA GDB est la version de gdb pour le langage CUDA de programmation GPU ;
  • IDA The Interactive Disassembler ;
  • Le Java Debugger, généralement appelé JDB ;
  • kgdb, le débogueur intégré au Noyau Linux ;
  • ladebug, un débogueur que l’on utilisait sous le système d’exploitation Tru64 UNIX[1] ;
  • MacsBug ;
  • Mpatrol ;
  • OCamlDebug, le débogueur d'Objective Caml ;
  • OllyDbg ;
  • PE Explorer ;
  • Les débogueurs Perl[2] ;
  • Prism Parallel Debugger ;
  • Purify ;
  • sdb ;
  • SoftICE ;
  • Syser, un debugger Ring 0 ;
  • SPlint ;
  • TMON ;
  • TotalView ;
  • Turbo Debugger ;
  • Valgrind ;
  • W32DASM ;
  • HP Wildebeest Debugger, appelé aussi HP WDB[3] ;
  • WinDbg ;
  • ODB: Omniscient Debugger, débogueur pour Java permettant de déboguer du code en revenant en arrière ;
  • xdb, un débogueur formel utilisé vers la fin des années 1990 sous le système d'exploitation MPE/iX (en) ; ce nom désigne aussi un débogueur Intel des années 2000, appelé communément le débogueur Intel xdb ;

Bibliographie

[modifier | modifier le code]
  • Jonathan B. Rosenberg, How Debuggers Work: Algorithms, Data Structures, and Architecture, John Wiley & Sons, (ISBN 0-471-14966-7)

Notes et références

[modifier | modifier le code]

Sur les autres projets Wikimedia :

  • débogueur, sur le Wiktionnaire
  • débugueur, sur le Wiktionnaire
  1. ↑ (en) « Ladebug Debugger Manual : Compaq Tru64 UNIX Version 5.1A or higher », sur tru64unix.compaq.com, juin 2001 (consulté le 7 décembre 2012)
  2. ↑ (en) « The Perl Debugger(s) », sur perl.org, 7 décembre 2012 (consulté le 7 décembre 2012)
  3. ↑ (en) « HP WDB », sur www2.hp.com, 7 décembre 2012 (consulté le 7 décembre 2012)
v · m
Programme informatique
Compilation
  • Analyse lexicale
  • Analyse syntaxique
  • Assemblage
  • Fichier objet
  • Code source
  • Compilateur
  • Décompilateur
  • Édition de liens
  • Identificateur
  • Moteur de production
  • Précompilateur
  • Préprocesseur
Exécution
  • Configuration
  • Interprète
  • Machine virtuelle
  • Offset
  • Portabilité
  • Processus
  • Point d'arrêt
  • Thread
  • Segmentation
Bug
  • Débogueur
  • Dépassement d'entier
  • Soupassement arithmétique
  • Dépassement de pile
  • Dépassement de tampon
  • Dépassement de tas
  • Effet de bord
  • Erreur de segmentation
  • Exception
  • Fuite de mémoire
  • Plantage
  • Test
  • Catégorie
    • Compilateur
    • Bug
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Débogueur&oldid=211587084 ».
Catégorie :
  • Débogueur
Catégories cachées :
  • Page utilisant P31
  • Article utilisant une Infobox
  • Article contenant un appel à traduction en anglais
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id