Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| gdb [Le 09/11/2010, 11:41] – continue 82.247.184.29 | gdb [Le 24/01/2026, 19:37] (Version actuelle) – suppr anjuta abandonné krodelabestiole | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Dapper Edgy Feisty | + | {{tag> |
| - | ---- | + | |
| ====== Débuggage avec gdb ====== | ====== Débuggage avec gdb ====== | ||
| ===== Description ===== | ===== Description ===== | ||
| - | gdb, acronyme de GNU DeBugger, est un programme qui, comme son nom l' | + | gdb, acronyme de GNU DeBugger, est un programme qui, comme son nom l' |
| Cet outil, indispensable à tout programmeur, | Cet outil, indispensable à tout programmeur, | ||
| Ligne 11: | Ligne 10: | ||
| ===== Installation ===== | ===== Installation ===== | ||
| - | [[: | + | [[: |
| Si vous développez en utilisant une bibliothèque particulière, | Si vous développez en utilisant une bibliothèque particulière, | ||
| Ligne 27: | Ligne 26: | ||
| < | < | ||
| + | <note tip>on peut lancer avec l' | ||
| + | < | ||
| + | qui permet de visualiser le code, les points d' | ||
| + | </ | ||
| Dans l' | Dans l' | ||
| À tout moment, vous pouvez interrompre le programme avec le raccourci clavier **Ctrl+C** dans le terminal. La commande **where** vous permettra alors de voir la pile des appels. | À tout moment, vous pouvez interrompre le programme avec le raccourci clavier **Ctrl+C** dans le terminal. La commande **where** vous permettra alors de voir la pile des appels. | ||
| Ligne 36: | Ligne 38: | ||
| La commande **start** lance le programme et s' | La commande **start** lance le programme et s' | ||
| - | < | + | < |
| + | |||
| + | ==== Résumé des principales commandes ==== | ||
| + | |||
| + | ^commande | ||
| + | |run | r | lance le programme (s' | ||
| + | |continue | ||
| + | |~~~ | ~~~ | ~~~ | | ||
| + | |break | ||
| + | |info breakpoints | ||
| + | |delete [x] | d [x] | efface les points d' | ||
| + | |~~~ | ~~~ | ||
| + | |next | n | exécute une instruction (ne rentre pas dans les fonctions) | ||
| + | |step | s | exécute une instruction (rentre potentiellement dans les fonctions) | | ||
| + | |finish | ||
| + | |list | l | affiche 10 lignes de code centrée sur la ligne à exécuter | ||
| + | |until xx | u xx | exécute les instructions jusqu' | ||
| + | | | ||
| + | | | ||
| + | |monitor reset halt | ||
| + | |||
| Ligne 60: | Ligne 83: | ||
| ==== Afficher la valeur d'une variable ==== | ==== Afficher la valeur d'une variable ==== | ||
| - | Il est possible d' | + | Il est possible d' |
| + | ou encore, en abbrégé et en spécifiant un type (x:hexa, d:decimal, f:float, c:char, s:string… help x pour les voir tous): | ||
| + | < | ||
| + | La même remarque | ||
| + | et pour une variable qui est un tableau de char de 16 caractères: | ||
| + | < | ||
| ===== Interfaces graphiques ===== | ===== Interfaces graphiques ===== | ||
| Ligne 67: | Ligne 95: | ||
| * Nemiver: interface de gdb s' | * Nemiver: interface de gdb s' | ||
| - | * Kdbg: interface de gdb s' | + | |
| * ddd: interface graphique très complète pour de nombreux debuggers dont gdb | * ddd: interface graphique très complète pour de nombreux debuggers dont gdb | ||
| * xxgdb: interface de gdb pour X | * xxgdb: interface de gdb pour X | ||
| - | * cgdb: interface de type ncurses | + | |
| * gdb-mode pour emacs | * gdb-mode pour emacs | ||
| - | Aussi, quelques environnements de développement incluent une interface graphique pour **gdb** ; c'est le cas d'[[:anjuta|Anjuta]], d'[[:eclipse|Eclipse]] ou encore | + | ==== Pour Vim/GVim ==== |
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ==== Pour IDE ==== | ||
| + | Aussi, quelques environnements de développement incluent une interface graphique pour **gdb** ; c'est le cas d'[[:Eclipse]] ou de [[:KDevelop]]. | ||
| + | |||
| + | ===== Concurrents ===== | ||
| + | |||
| + | Enfin signalons le concurrent **idb** (d' | ||
| + | < | ||
| ===== Liens ===== | ===== Liens ===== | ||
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * [[http://www.gnu.org/software/ddd/|Le site de ddd]] | + | |
| - | * [[http://cgdb.sourceforge.net/|Le site de cgdb]] | + | |
| - | * [[http:// | + | * (fr) [[https:// |
| - | * [[http://refcards.com/docs/peschr/gdb/gdb-refcard-a4.pdf|Carte de référence]] | + | |
| + | | ||
| + | * (en) [[http://cgdb.sourceforge.net/ | ||
