Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
gdb [Le 06/09/2017, 11:29]
bcag2 [Liens]
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// 
 +<​code>​gdb -tui toto</​code>​ 
 +qui permet de visualiser le code, les points d'​arrêt… bref plus visuel… mais semble buggé 
 +</​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**.
 À 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 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 46: Ligne 49:
 |break ​ [yyy.c:​]xx ​    | b [yyy.c:​]xx ​       | place un point d'​arrêt à la ligne xx du fichier yyy.c (si indiqué) ​        | |break ​ [yyy.c:​]xx ​    | b [yyy.c:​]xx ​       | place un point d'​arrêt à la ligne xx du fichier yyy.c (si indiqué) ​        |
 |info breakpoints ​    | info breakpoints | liste les points d'​arrêts ​                                                                     | |info breakpoints ​    | info breakpoints | liste les points d'​arrêts ​                                                                     |
-|delete ​                   | d                         ​| efface les points d'​arrêts ​                                                                 |+|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 90: Ligne 96:
  
    * Nemiver: interface de gdb s'​intégrant bien à Gnome    * Nemiver: interface de gdb s'​intégrant bien à Gnome
-   * Kdbg: interface de gdb s'​intégrant bien à KDE+   ​* ​[[http://​kdbg.org|Kdbg]]: interface de gdb s'​intégrant bien à KDE
    * 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+   ​* ​[[https://​github.com/​cgdb/​cgdb|cgdb]]: interface de type ncurses
    * gdb-mode pour emacs    * gdb-mode pour emacs
  
 +==== Pour Vim/GVim ====
 +  * [[https://​github.com/​larrupingpig/​vimgdb-for-vim7.4|VimGDB]]
 +  * [[https://​www.vim.org/​scripts/​script.php?​script_id=4582|Conque GDB]]
 +  * [[https://​sourceforge.net/​projects/​clewn|Clewn]]
 +
 +==== Pour IDE ====
 Aussi, quelques environnements de développement incluent une interface graphique pour **gdb** ; c'est le cas d'​[[:​anjuta|Anjuta]],​ d'​[[:​eclipse|Eclipse]] ou encore de [[:​kdevelop|KDevelop]]. Aussi, quelques environnements de développement incluent une interface graphique pour **gdb** ; c'est le cas d'​[[:​anjuta|Anjuta]],​ d'​[[:​eclipse|Eclipse]] ou encore de [[:​kdevelop|KDevelop]].
  
Ligne 106: Ligne 118:
    * (en) [[http://​sourceware.org/​gdb/​documentation/​|La documentation officielle]]    * (en) [[http://​sourceware.org/​gdb/​documentation/​|La documentation officielle]]
    * (fr) [[http://​www.linux-france.org/​article/​devl/​gdb_howto.html|Un tutorial simple sur linux-france.org]]    * (fr) [[http://​www.linux-france.org/​article/​devl/​gdb_howto.html|Un tutorial simple sur linux-france.org]]
-   * (fr) [[http://www-rocq.inria.fr/​who/​Anne.Canteaut/​COURS_C/​gdb.html|tuto de Anne Canteaut de l'​INRIA]] +   * (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, ​complet]]+   * (fr) [[https://​openclassrooms.com/​courses/​deboguer-son-programme-avec-gdb|tuto sur openclassrooms, ​bien documenté]] 
 +   * (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]]
-   * (en) [[http://​refcards.com/​docs/​peschr/​gdb/​gdb-refcard-a4.pdf|Carte de référence]]FIXME (lien introuvable en sept 2017) 
  • gdb.1504690142.txt.gz
  • Dernière modification: Le 06/09/2017, 11:29
  • par bcag2