gdb --args program args
gdb program dump gdb -c dump
Ajouter dans le fichier $HOME/.gdbinit les commandes à exécuter au démarrage. Par exemple set height 0.
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).
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
b Message.cpp:112 if i == 99
Mettre un point d'arrêt sur une exception qui est catch : catch throw.
Avec un point d'arrêt sur le main :
start
Sans point d'arrêt initial :
run
bt
bt full
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
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
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