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

Nat*_*enn 5 debugging cygwin

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

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

War*_*ung 4

与 Unix 不同,Windows 上的核心转储不是“免费”的;即使您可以获得它们,使用它们也不像在 Unix 上那么容易。Cygwin 没有修复这些基本的平台差异。简单的事实是,调试在 Windows 上采取了不同的路径:IDE、交互式调试器等。我不会继续尝试将方钉敲入你熟悉的圆孔中。

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