我有一个程序,我在Windows 7上运行Cygwin并且总是导致分段错误。这不是我的程序,但我想要它的帮助,开发人员问我至少有一个堆栈跟踪
我的Cygwin变量如下所示:error_start=c:/cygwin/bin/dumper.exe
。我还在执行程序之前运行此命令:ulimit -c unlimited
。这是我可以通过谷歌(包括this问题)找到的唯一两个要求,即在分段错误后从Cygwin获取某些信息。
但是,当我运行该程序时,它会打印消息Segmentation fault
,并且不打印a.exe.stackdump,也不打印任何其他转储文件,也不会启动转储器实用程序。有关如何获取所需信息的任何建议吗?
答案 0 :(得分:2)
与Unix不同,核心转储在Windows上不是“免费”的;即使你能得到它们,使用它们并不像在Unix上那么容易。 Cygwin没有解决这些基本的平台差异。简单的事实是,调试在Windows上采用了不同的路径:IDE,交互式调试器等。我不会继续试图将那个方形钉子钉在你熟悉的圆孔上。
如果没有安装Visual Studio并在其调试器下运行程序,最简单的方法就是安装WinDbg,在其下运行程序,然后在崩溃时说!heap -p -a UserAddr
。堆栈回溯应该在某处输出。