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

在运行使用MinGW编译的程序时,有没有办法生成一个gdb可读的coredump?,第1张

概述我试图调试使用MinGW的 gcc编译的 Windows程序,只有在gdb之外运行时才会发生故障(可能是一些竞争条件…可爱).问题是,当程序崩溃,我没有运行GDB时,我无法获取堆栈跟踪…我可以选择在MSVC中打开程序,当它崩溃,但MSVC无法读取gcc的调试符号,因此它给我的堆栈跟踪是无用的. 有没有办法让Windows创建一个核心转储,然后我可以在MinGW的gdb中打开?或者,有没有办法采取M 我试图调试使用MinGW的 gcc编译的 Windows程序,只有在gdb之外运行时才会发生故障(可能是一些竞争条件…可爱).问题是,当程序崩溃,我没有运行GDB时,我无法获取堆栈跟踪…我可以选择在MSVC中打开程序,当它崩溃,但MSVC无法读取gcc的调试符号,因此它给我的堆栈跟踪是无用的.

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

解决方法 windows不会创建核心文件(在linux上它们被内核iirc转储)
您可以尝试附加gdb与崩溃对话框打开,但我怀疑它会工作

如果您使用msvc,您可以在visualstudio中创建一个minIDump可调试,但是没有办法使用gcc创建相同的转储

谷歌做了一个你可能会发现有用的软件,但我不知道它可以生成与gcc的东西

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

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

drmingw -i

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

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

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

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

总结

以上是内存溢出为你收集整理的在运行使用MinGW编译的程序时,有没有办法生成一个gdb可读的coredump?全部内容,希望文章能够帮你解决在运行使用MinGW编译的程序时,有没有办法生成一个gdb可读的coredump?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1048242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存