Table des matières

Inspiration

Lancement

gdb --args program args
gdb program dump
gdb -c dump

Options

Par défaut

Ajouter dans le fichier $HOME/.gdbinit les commandes à exécuter au démarrage. Par exemple set height 0.

Description

Ne plus avoir de points d'arrêt quand l'affichage d'une donnée prend plus que la taille de l'écran (bt ou display notamment).

Points d'arrêt

info breakpoints
info watchpoints
clear
delete n

Certaines applications génèrent beaucoup d'exceptions.

handle SIGSEGV nostop noprint pass
set follow-fork-mode child

Conditions

b Message.cpp:112 if i == 99

Exception

Mettre un point d'arrêt sur une exception qui est catch : catch throw.

Démarrer le débogage

Avec un point d'arrêt sur le main :

start

Sans point d'arrêt initial :

run

Une fois arrêté

La pile

bt
bt full

Afficher le code

list
CTRL+X + CTRL+A
CTRL+L
CTRL+X + 2

Répéter de fois autant de nécessaire pour avoir la combinaison de fenêtre : code C / code assembleur, code assembleur / registres, registres / code C.

Pour modifier le contenu de la fenêtre des registres, il faut faire tui reg XXX avec XXX : general / float / system / vector / all.

Avant les touches haut et bas permettaient de faire défiler les commandes précédentes / suivantes. En mode TUI, haut et bas font défiler la fenêtre en cours. Il faut utiliser CTRL+P et CTRL+N. #Simplicité…

next
step
continue

Scripts

Utile si le plantage d'un programme est aléatoire

Mettre un point d'arrêt sur le début du main (id 1) et sur la fin (id 2).

Taper :

command 1
record
continue
end
command 2
run
end

Bugs

decode_line_full: Assertion `state->canonical_names[i].suffix != NULL' failed.

Il faut supprimer tous les breakpoints / watchpoints. Trouvé depuis LPCXpresso pour ARM. Failed to Debug with GDB: Breakpoints or Expressions on non-existing Locations | MCU on Eclipse Archive du 11/10/2014 le 07/01/2020

N'existe plus depuis la version v4.9 (Bug #1380026 “Internal GDB failure and crash for breakpoint with...” Bugs GNU ARM Embedded Toolchain Archive du 11/10/2014 le 07/01/2020