J'aurais aimé gdb
lancer immédiatement l'exécutable, comme si j'avais tapé "run" (motivation: je n'aime pas taper "run").
Une façon est de diriger la commande pour gdb
aimer ceci:
$ echo run | gdb myApp
Mais le problème avec cette approche est que vous perdez l'interactivité avec gdb
, par exemple. si un point d'arrêt se déclenche ou se myApp
bloque, se gdb
ferme. Cette méthode est discutée ici .
En regardant les options dans --help
, je ne vois pas de moyen de le faire, mais peut-être que je manque quelque chose.
./a.out a b
gdb -x
sur les systèmes Linux. OS X utilise LLVM et clang alors vérifiez les capacités de débogage delldb
.J'utiliserais un script gdb:
où votre-script contient quelque chose comme:
ensuite vous avez l'invite gdb interactive normale
MODIFIER :
voici une optimisation pour les vraiment paresseux:
.gdbinit
dans leworking directory
.Ensuite, vous exécutez simplement gdb comme
gdb
... et gdb charge et exécute automatiquement le contenu de .gdbinit.
la source
fg
après lar
ligne, ça agit sainementstart
commande fournit un raccourci pourb
+r
: stackoverflow.com/a/2119606/895245Le chat vous permet de continuer à taper après les pauses gdb.
la source
Make breakpoint pending on future shared library load? (y or [n])
que la réponse supposeront automatiquement "Non".start
commanderCette commande est une autre bonne option:
C'est comme exécuter, mais définit également un point d'arrêt temporaire à
main
et s'arrête là.Ce point d'arrêt temporaire est désactivé une fois qu'il est atteint.
starti
Il existe également un lien
starti
qui démarre le programme et s'arrête à la toute première instruction à la place, voir aussi: Arrêt à la première instruction de code machine dans GDBExcellent lorsque vous faites des choses de bas niveau.
la source
gdb -x <(echo run) --args $program $args
la source