Ich hätte gdb
die ausführbare Datei gerne sofort ausgeführt, als hätte ich "run" eingegeben (Motivation: Ich mag es nicht, "run" einzugeben).
Eine Möglichkeit besteht darin, den Befehl gdb
wie folgt zu leiten :
$ echo run | gdb myApp
Das Problem bei diesem Ansatz ist jedoch, dass Sie die Interaktivität verlieren gdb
, z. Wenn ein Haltepunkt ausgelöst wird oder myApp
abstürzt, wird er gdb
beendet. Diese Methode wird hier diskutiert .
Wenn --help
ich mir die Optionen in anschaue , sehe ich keinen Weg, dies zu tun, aber vielleicht fehlt mir etwas.
./a.out a b
gdb -x
auf Linux-Systemen verwendet. OS X verwendet LLVM und Clang. Überprüfen Sie daher die Debugging-Funktionen vonlldb
.Ich würde ein GDB-Skript verwenden:
wo dein-Skript so etwas enthält wie:
Danach haben Sie die normale interaktive GDB-Eingabeaufforderung
EDIT :
Hier ist eine Optimierung für die wirklich Faulen:
.gdbinit
imworking directory
.Danach führen Sie einfach gdb as aus
gdb
... und gdb lädt automatisch den Inhalt von .gdbinit und führt ihn aus.
quelle
fg
nach derr
Linie setzen, handelt es vernünftigstart
Befehl bietet eine Verknüpfung fürb
+r
: stackoverflow.com/a/2119606/895245Mit der Katze können Sie nach GDB-Pausen weiter tippen.
quelle
Make breakpoint pending on future shared library load? (y or [n])
automatisch die Antwort "Nein" angenommen.start
BefehlDieser Befehl ist eine weitere gute Option:
Es ist wie ein Lauf, setzt aber auch einen temporären Haltepunkt
main
und stoppt dort.Dieser temporäre Haltepunkt wird deaktiviert, sobald er getroffen wird.
starti
Es gibt auch einen verwandten,
starti
der das Programm startet und stattdessen beim allerersten Befehl stoppt, siehe auch: Stoppen beim ersten Maschinencode-Befehl in GDBGroßartig, wenn du ein paar Sachen auf niedrigem Niveau machst.
quelle
gdb -x <(echo run) --args $program $args
quelle