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