Ich leite gdb und möchte eines dieser unglücklichen Gottobjekte untersuchen. Es dauert viele Seiten (und ich habe einen 24-Zoll-Monitor zur Seite gedreht!), Um das Ganze zu sehen. Zur Vereinfachung möchte ich, dass gdb das Objekt in eine Datei anstelle des Bildschirms druckt, damit ich es öffnen kann vi und bewege dich mühelos. Bei aller Vielseitigkeit von gdb muss es einen Weg geben, dies zu tun, oder?
104
set logging redirect on
.set logging file my_god_object.log
vorher setzenset logging on
?tail -f
undawk
war heute wirklich hilfreich. Vielen Dank!Ich habe festgestellt, dass Sie die Ausgabe von gdb über den folgenden
run
Befehl in eine Datei umleiten können :quelle
Erweiterung der Antwort von @ qubodup
Der
-ex
Switch führt einen GDB-Befehl aus. Das obige lädt also die Kerndatei, führt denbt
Befehl und dann denquit
Befehl aus. Die Ausgabe wird aufbacktrace.log
und auch auf dem Bildschirm geschrieben.Ein weiterer nützlicher GDB-Aufruf (Stacktrace mit lokalen Variablen aus allen Threads) ist
quelle
gdb -c core.3599 ...
Von https://sourceware.org/gdb/onlinedocs/gdb/Logging-Output.html :
quelle
Eine einfache Methode zum Protokollieren von GDB in einer Datei, während die Ausgabe weiterhin angezeigt wird (was das Schreiben von Befehlen erleichtert), ist folgende
tee
:quelle
Obwohl es hier viele gute Antworten gibt, muss ich noch das einzige posten, was für mich funktioniert hat:
Dies war die einzige Möglichkeit, GDB- und Binärausgaben in dieselbe log.txt-Datei zu übertragen und sie gleichzeitig auf der Konsole anzuzeigen.
BEARBEITEN:
Achtung: Die Ausgabe scheint teilweise nicht zwischen der GDB-Ausgabe und der Binärausgabe synchronisiert zu sein. Kann jemand bestätigen? Möglicherweise möchten Sie überprüfen, ob Ihr Telnet / SSH-Client über eine Funktion zum Protokollieren der Ausgabe verfügt, die Sie in Ihrer Konsole sehen.
quelle
Sie haben hier mehrere Antworten erhalten. Sie sind richtig. Ich möchte nur einen Befehl hinzufügen, mit dem Sie alle Ausgaben auf einmal erfassen können. Dies ist sehr hilfreich, wenn Sie eine große Rückverfolgung sammeln. Gehen Sie folgendermaßen vor, bevor Sie eine Protokollierungskonfiguration vornehmen:
Ich habe es in diesem Artikel gefunden: https://askaralikhan.blogspot.com/2016/05/gdb-all-threads-bt-to-file.html?showComment=1584614942454#c4584028195226351332
quelle