6

我有一个在 Windows 7 上的 Cygwin 中运行的程序,它总是导致分段错误。这不是我的程序,但我需要帮助,开发人员要求我至少提供一个堆栈跟踪我的 Cygwin 变量如下所示error_start=c:/cygwin/bin/dumper.exe:我也在执行程序之前运行了这个命令:ulimit -c unlimited. 这是我可以通过谷歌(包括这个问题)找到的唯一两个要求,以便在分段错误后从 Cygwin 获取某种信息。

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

4

1 回答 1

4

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

除了安装 Visual Studio 并在其调试器下运行程序之外,获得有用的东西的最简单方法可能是安装WinDbg,在其下运​​行您的程序,然后说它!heap -p -a UserAddr何时崩溃。堆栈回溯应该在某处的输出中。

于 2012-06-12T20:16:58.483 回答