有没有办法在运行使用MinGW编译的程序时生成gdb可读的coredump?

use*_*715 15 c windows gdb mingw

我正在尝试调试一个使用MinGW的gcc编译的Windows程序,它只能 gdb 之外运行时遇到段错误(可能是一些竞争条件......可爱.)问题是,当程序崩溃并且我没有运行GDB时,我无法获得堆栈跟踪...我可以选择在MSVC崩溃时打开程序,但是MSVC无法读取gcc的调试符号,因此它给我的堆栈跟踪是没用的.

有没有办法让Windows创建一个核心转储,然后我可以在MinGW的gdb中打开?或者,有没有办法获取MSVC的堆栈跟踪(具有原始地址但没有符号)并使用gcc来获取人类可读的跟踪?

she*_*pya 9

windows不会创建核心文件(在Linux上它们被内核iirc转储)你可以尝试使用gdb附加崩溃对话框但我怀疑它会工作

如果你使用msvc而不是你可以在visualstudio中创建一个minidump debuggable但是没有办法用gcc创建相同的转储

谷歌制作了一个你可能觉得有用的软件,但我不确定它能用gcc制作东西

http://code.google.com/p/google-breakpad/

或者你可以将drmingw设置为jit调试器

drmingw -i
Run Code Online (Sandbox Code Playgroud)

我确信有可能在mingw上获得类似回溯的东西,因为mingw编译的llvm能够转储跟踪

http://code.google.com/p/backtrace-mingw/

看起来更简单,但我没有测试过

用-g3编译(如果你能-O0)