2008-11-26 4 views
21

So schrieb ich Buggy-Code, der gelegentlich abstürzt ... und erstellt eine Stackdump-Datei.Mit einem Stackdump von Cygwin ausführbare

Mit addr2line kann ich herausfinden, wie das Programm zum Absturzpunkt gekommen ist, indem ich die Adressen um eins dekodiert habe. Gibt es ein alternatives Tool, das das Debuggen mithilfe von Stack-Dumps erleichtern kann? Gibt es eine Möglichkeit, diese Informationen in Insight/Gdb zu laden?

Antwort

40

Sie können Cygwin anweisen, Ihren gdb-Debugger gerade rechtzeitig zu starten, wenn ein Fehler auftritt. Um dies zu erreichen, fügen Sie error_start=action auf den Cygwin-Umgebungsvariable:
export CYGWIN="$CYGWIN error_start=gdb -nw %1 %2"

Else können Sie Cygwin ein echtes Core-Dump generieren.
export CYGWIN="$CYGWIN error_start=dumper -d %1 %2"

+1

+1 für sehr hilfreich Hinweis –

+3

Und laufen 'gdb path/to/die/binary path/to/das/core' es zu debuggen. Danke an http://stackoverflow.com/a/5115653/204658. – thoni56

+0

Wenn diese Option 'error_start = gdb -nw% 1% 2' aktiviert ist, habe ich gdb ausgeführt, aber das Beenden von gdb führt nur dazu, dass ich neu starte, wie ich es komplett kündige? – CMCDragonkai

-1

Stellen Sie zunächst sicher, dass Sie mit Source-Debugging aktiviert ist (mit Option -g) bauen:

gcc -g -o myfile myfile.c 

Dann in gdb die Dumplast nach dem Absturz (oder Einsicht oder ddd)

gdb myfile core 
+17

STACKDUMP! = Coredump – Gerhard

Verwandte Themen