调试 – 需要堆栈跟踪,但Cygwin甚至不会打印核心转储

我有一个程序,我在
Windows 7上运行Cygwin,并且总是导致分段错误.这不是我的程序,但我想要它的帮助,开发人员问我至少有一个堆栈跟踪

我的Cygwin变量如下所示:error_start = c:/cygwin/bin/dumper.exe.我还在执行程序之前运行此命令:ulimit -c unlimited.这是我可以通过谷歌(包括
this问题)找到的唯一两个要求,以便在分段错误后从Cygwin获取某些信息.

但是,当我运行程序时,它会打印消息Segmentation fault,并且不打印a.exe.stackdump,也不打印任何其他转储文件,也不会启动转储器实用程序.有关如何获取所需信息的任何建议?

最佳答案 与Unix不同,核心转储在Windows上不是“免费”的;即使你能得到它们,使用它们并不像在Unix上那么容易. Cygwin没有解决这些基本的平台差异.简单的事实是,调试在Windows上采用了不同的路径:IDE,交互式调试器等.我不会继续尝试将那个方形钉钉在你熟悉的圆孔上.

如果没有安装Visual Studio并在其调试器下运行程序,最简单的方法就是安装WinDbg,在其下运​​行程序,然后在崩溃时说!heap -p -a UserAddr.堆栈回溯应该在某处输出.

点赞