26

所以我写了错误的代码,偶尔会崩溃......并创建了一个 stackdump 文件。

使用 addr2line 我可以通过将地址解码为一个来弄清楚程序是如何到达崩溃点的。是否有替代工具可以使用堆栈转储来简化调试?有没有办法在 Insight/Gdb 中加载这些信息?

4

2 回答 2

50

您可以指示 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"

于 2009-01-06T09:26:54.430 回答
0

首先,确保您在构建时启用了源代码调试(使用 -g 选项):

gcc -g -o myfile myfile.c

然后在崩溃后将转储加载到 gdb 中(或洞察力,或 ddd)

gdb myfile core
于 2008-11-26T08:08:16.433 回答