Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当运行用MinGW编译的程序时,有没有办法生成gdb可读的coredump?_C_Windows_Gdb_Mingw - Fatal编程技术网

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

当运行用MinGW编译的程序时,有没有办法生成gdb可读的coredump?,c,windows,gdb,mingw,C,Windows,Gdb,Mingw,我正在尝试调试一个使用MinGW的gcc编译的Windows程序,该程序只有在gdb之外运行时才会出现故障(可能是某些竞争条件…很好)。问题是,当程序崩溃而我没有运行gdb时,我无法获得堆栈跟踪。。。当程序崩溃时,我可以选择在MSVC中打开程序,但MSVC无法读取gcc的调试符号,因此它提供给我的堆栈跟踪是无用的 有没有办法让Windows创建一个核心转储,然后我可以在MinGW的gdb中打开它?或者,是否有方法获取MSVC的堆栈跟踪(具有原始地址但没有符号)并使用gcc获取人类可读的跟踪?wi

我正在尝试调试一个使用MinGW的gcc编译的Windows程序,该程序只有在gdb之外运行时才会出现故障(可能是某些竞争条件…很好)。问题是,当程序崩溃而我没有运行gdb时,我无法获得堆栈跟踪。。。当程序崩溃时,我可以选择在MSVC中打开程序,但MSVC无法读取gcc的调试符号,因此它提供给我的堆栈跟踪是无用的


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

windows不创建核心文件(在linux上,它们由内核iirc转储) 您可以尝试在崩溃对话框打开的情况下连接gdb,但我怀疑它是否会起作用

如果改用msvc,则可以在visualstudio中创建可调试的小型转储,但无法使用gcc创建相同的转储

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

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

drmingw -i
我确信在mingw上也可以得到类似于回溯的东西,因为mingw编译的llvm能够转储跟踪

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


使用-g3编译(如果可以使用-O0)

backtrace mingw看起来很完美,但我无法在我的mingw64系统上构建它。github导出中已经存在问题Windows可能不创建核心文件,但它可以生成转储文件(包括迷你转储文件和完整转储文件。有人知道让gdb读取这些文件的方法吗?@George您可能不再需要它,但可以读取迷你转储文件。