Ich habe ein Programm, das Eingaben von stdin und einige Parameter von der Kommandozeile übernimmt. Es sieht aus wie das:
cat input.txt > myprogram -path "/home/user/work"
Ich versuche, den Code mit gdb in emacs zu debuggen. Mit Mx gdb versuche ich, das Programm mit dem folgenden Befehl zu laden:
gdb cat input.txt > myprogram -path "/home/user/work"
Gdb mag es jedoch nicht.
Frage von hier abgeschnitten . Leider verstehe ich die Lösung nicht und bin mir nicht sicher, was ich tun soll, außer mit der -g
Option zu kompilieren und den Befehl Mx gdb auszuführen.
emacs
gdb
redirect
command-line-arguments
vinc456
quelle
quelle
<
undinput.txt
alsargv
Argumente für mein Programm :( Ich werde diese Antworten mit meiner GDB 8.2.1 weiterEs gibt verschiedene Möglichkeiten, dies zu tun:
oder
oder
Dabei verwendet der
run
Befehl gdb (r
) standardmäßig die zuvor festgelegten Argumenteset args
.quelle
gdb -ex 'r -path /home/user/work < input.txt' myprogram
in der dritten Variante?gdb -ex 'b main' -ex 'r -path /home/user/work < input.txt' myprogram
.Der Vollständigkeit halber gibt es beim Starten einer Debugging-Sitzung auch die Option --args. dh)
quelle
gdb --args yourprog.out input.txt
Und wenn Sie nicht von Anfang an debuggen müssen, können Sie auch eine Verbindung zu einem bereits laufenden Prozess herstellen, indem Sie Folgendes verwenden:
Dabei ist xxx die Prozess-ID. Dann müssen Sie gdb nicht die Startargumente mitteilen.
quelle