所以我编写了偶尔崩溃的错误代码......并创建了一个stackdump文件。
使用addr2line我可以通过解码一个地址来弄清楚程序如何到达崩溃点。是否有替代工具可以使用堆栈转储简化调试? 有没有办法在Insight / Gdb中加载此信息?
答案 0 :(得分:43)
您可以指示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 :(得分:0)
首先,确保在启用源调试的情况下构建(使用-g选项):
gcc -g -o myfile myfile.c
然后在崩溃(或洞察或ddd)
之后将转储加载到gdb中gdb myfile core