Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
gdb [Le 16/02/2018, 15:37] bcag2 [Liens] Dix choses qu'on ne peut faire qu'avec GDB |
gdb [Le 11/09/2022, 11:47] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 11: | Ligne 11: | ||
===== Installation ===== | ===== Installation ===== | ||
- | [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>build-essential,gdb|build-essential gdb]]** | + | [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>build-essential,gdb]]** |
Si vous développez en utilisant une bibliothèque particulière, vous pouvez éventuellement installer le paquet de débuggage, dont le nom finit par **-dbg**, en plus du paquet de développement (dont le nom finit par **-dev**). | Si vous développez en utilisant une bibliothèque particulière, vous pouvez éventuellement installer le paquet de débuggage, dont le nom finit par **-dbg**, en plus du paquet de développement (dont le nom finit par **-dev**). | ||
Ligne 27: | Ligne 27: | ||
<code>gdb toto</code> | <code>gdb toto</code> | ||
- | <note tip>on peut lancer avec l'option //-tui// | + | <note tip>on peut lancer avec l'option //-tui// |
<code>gdb -tui toto</code> | <code>gdb -tui toto</code> | ||
- | qui permet de visualiser le code, les points d'arrêt… bref plus visuel… mais semble buggé | + | qui permet de visualiser le code, les points d'arrêt… bref plus visuel… mais semble buggé |
</note> | </note> | ||
Dans l'interface de gdb, vous pouvez lancer le programme avec **run** et quitter le débogueur avec **quit**. | Dans l'interface de gdb, vous pouvez lancer le programme avec **run** et quitter le débogueur avec **quit**. | ||
Ligne 39: | Ligne 39: | ||
La commande **start** lance le programme et s'arrête à la première ligne : la commande "n" permet ensuite de faire du pas-à-pas. | La commande **start** lance le programme et s'arrête à la première ligne : la commande "n" permet ensuite de faire du pas-à-pas. | ||
- | <note>Si le programme a des paramètres d'entrée, il faut les ajouter à la suite de **run** (ou **start**) ou le mettre en ligne de commande (attention, taper **gdb --args monprogramme monoption mesoptions**).</note> | + | <note>Si le programme a des paramètres d'entrée, il faut les ajouter à la suite de **run** (ou **start**) ou le mettre en ligne de commande (attention, taper **gdb --args monprogramme monoption mesoptions**).</note> |
==== Résumé des principales commandes ==== | ==== Résumé des principales commandes ==== | ||
Ligne 51: | Ligne 51: | ||
|delete [x] | d [x] | efface les points d'arrêts si pas d'argument, ou le point d'arrêt correspondant au n° x | | |delete [x] | d [x] | efface les points d'arrêts si pas d'argument, ou le point d'arrêt correspondant au n° x | | ||
|~~~ | ~~~ | ~~~ | | |~~~ | ~~~ | ~~~ | | ||
- | |next | n | exécute une instruction (ne rentre pas dans les fonctions) | | + | |next | n | exécute une instruction (ne rentre pas dans les fonctions) peut-être suivi du nombre de ligne à exécuter | |
|step | s | exécute une instruction (rentre potentiellement dans les fonctions) | | |step | s | exécute une instruction (rentre potentiellement dans les fonctions) | | ||
|finish | f | exécute les instructions jusqu'à la sortie de la fonction | | |finish | f | exécute les instructions jusqu'à la sortie de la fonction | | ||
- | |until xx | u xx | exécute les instructions jusqu'à la ligne xx | | + | |list | l | affiche 10 lignes de code centrée sur la ligne à exécuter | |
+ | |until xx | u xx | exécute les instructions jusqu'à la ligne xx | ||
+ | | | ||
+ | | | ||
+ | |monitor reset halt | | reset la target, permet de recommencer l'execution et le debug depuis le debut du code | ||
Ligne 101: | Ligne 104: | ||
==== Pour Vim/GVim ==== | ==== Pour Vim/GVim ==== | ||
* [[https://github.com/larrupingpig/vimgdb-for-vim7.4|VimGDB]] | * [[https://github.com/larrupingpig/vimgdb-for-vim7.4|VimGDB]] | ||
- | * [[http://www.vim.org/scripts/script.php?script_id=4582|Conque GDB]] | + | * [[https://www.vim.org/scripts/script.php?script_id=4582|Conque GDB]] |
* [[https://sourceforge.net/projects/clewn|Clewn]] | * [[https://sourceforge.net/projects/clewn|Clewn]] | ||
Ligne 117: | Ligne 120: | ||
* (fr) [[https://www.rocq.inria.fr/secret/Anne.Canteaut/COURS_C/gdb.html|tuto de Anne Canteaut de l'INRIA, bien documenté]] | * (fr) [[https://www.rocq.inria.fr/secret/Anne.Canteaut/COURS_C/gdb.html|tuto de Anne Canteaut de l'INRIA, bien documenté]] | ||
* (fr) [[https://openclassrooms.com/courses/deboguer-son-programme-avec-gdb|tuto sur openclassrooms, bien documenté]] | * (fr) [[https://openclassrooms.com/courses/deboguer-son-programme-avec-gdb|tuto sur openclassrooms, bien documenté]] | ||
- | * (fr) [[http://devarea.developpez.com/dix-choses-faisables-avec-GDB/|Dix choses qu'on ne peut faire qu'avec GDB]] | + | * (fr) [[https://devarea.developpez.com/dix-choses-faisables-avec-GDB/|Dix choses qu'on ne peut faire qu'avec GDB]] |
* (fr) [[http://www.linux-france.org/article/devl/gdb.html|Utilisation de gdb-mode sous Emacs sur linux-france.org]] | * (fr) [[http://www.linux-france.org/article/devl/gdb.html|Utilisation de gdb-mode sous Emacs sur linux-france.org]] | ||
* (en) [[http://www.gnu.org/software/ddd/|Le site de ddd (interface graphique pour debuggers dont gdb)]] | * (en) [[http://www.gnu.org/software/ddd/|Le site de ddd (interface graphique pour debuggers dont gdb)]] | ||
* (en) [[http://cgdb.sourceforge.net/|Le site de cgdb]] | * (en) [[http://cgdb.sourceforge.net/|Le site de cgdb]] |