2008-11-26 50 views
21

因此,我寫了一些有時會崩潰的bug代碼,並創建一個堆棧轉儲文件。從Cygwin可執行文件中使用堆棧轉儲

使用addr2line我可以通過解碼一個地址來計算程序如何到達崩潰點。是否有一種替代工具可以使用堆棧轉儲來緩解調試? 有沒有辦法在Insight/Gdb中加載這些信息?

回答

40

您可以指示Cygwin在發生故障時及時啓動gdb調試器。 要做到這一點,添加error_start=action在Cygwin環境變量:
export CYGWIN="$CYGWIN error_start=gdb -nw %1 %2"

否則你可以Cygwin的產生一個真正的核心轉儲。
export CYGWIN="$CYGWIN error_start=dumper -d %1 %2"

+1

+1非常有益的提示 – 2011-01-03 12:46:38

-1

首先,確保你建立與源代碼調試啓用(使用-g選項):

gcc -g -o myfile myfile.c 

然後加載轉儲到GDB崩潰(或洞察力,或者DDD)

gdb myfile core 
+17

STACKDUMP!=內核轉儲 – Gerhard 2008-11-26 12:01:20