Debugging 需要堆栈跟踪,但Cygwin赢了';我甚至不能打印堆芯

Debugging 需要堆栈跟踪,但Cygwin赢了';我甚至不能打印堆芯,debugging,cygwin,Debugging,Cygwin,我有一个程序,我在Windows7上的Cygwin中运行,它总是导致分段错误。这不是我的程序,但我需要帮助,开发人员要求我至少提供一个堆栈跟踪 我的Cygwin变量如下所示:error\u start=c:/Cygwin/bin/dumper.exe。在执行程序之前,我还运行了以下命令:ulimit-c unlimited。这是我能通过谷歌(包括问题)找到的在分割错误后从Cygwin获得某种信息的唯一两个要求 但是,当我运行程序时,它仍然会打印消息Segmentation fault,并且不会打

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


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

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


除了安装VisualStudio并在其调试器下运行程序外,获得有用信息的最简单方法可能是安装、在其下运行您的程序,然后说它何时崩溃。堆栈回溯应该在输出的某个地方。

它必须被编译以转储核心(例如
make CDEBUGFLAGS=-g…
)。如果您没有获取核心文件,请检查您的限制,并确保您的
coredumpsize
未设置为零(例如
限制
)。您可以通过执行
limit coredumpsize unlimited
将coredumpsize设置为unlimited,如果我使用Visual Studio编译它,您是否知道如何进行设置?如果它是Windows应用程序,请阅读以下内容:否则,我不知道如何使用Visual Studio进行设置。