2016-04-27 14 views
0

Ich debugging eine while Schleife mit bedingten Breakpoints in . Es gibt mehrere große Arrays, die in while Schleife erstellt werden. Ich möchte sie während des Debuggens in einer Datei drucken, damit ich später mit diff vergleichen kann.Drucken Array-Inhalt in eine Datei mit Gdb

Ich bin in der Lage Inhalte an der Konsole mit dem folgenden Befehl zu visualisieren:

(gdb) p *&ff[0]@10 

wo ff meine Array ist. Bitte sagen Sie mir, wie ich sie in eine Textdatei umleiten kann.

+0

Warum verwenden Sie '* &' beim Drucken? –

+0

* ist für den zu druckenden Wert – Shreya

+0

Sie können verwenden '(gdb) p ff [0] @ 10' –

Antwort

4

können Sie verwenden:

(gdb) set logging file large_array.txt 
(gdb) set logging on 

standardmäßig die Protokolldateiname ist gdb.txt

können Sie weitere Informationen finden Sie unter: https://sourceware.org/gdb/onlinedocs/gdb/Logging-Output.html

Es gibt auch eine WA ist gdb --args a.out arg1 ... |& tee gdb_out.txt

+0

Das funktioniert, aber das Format ist ein Problem. Ich würde gerne, wenn es etwas wie Umleitung von Array-Inhalten in eine Datei gibt .. – Shreya

+0

@ShreyKhare Wenn Sie den Quellcode ändern können, können Sie die Arrays im erforderlichen Format drucken. –

+0

@ShreyKhare Welches Format benötigen Sie? –

2

Sie Protokollierung mit

einstellen
(gdb) set logging on 

danach wird die gesamte Befehlsausgabe in einer Datei namens "gdb.txt" ausgegeben. Sie können den Array-Inhalt in der Datei finden.