gcc 在Windows中的MinGW中打印堆栈跟踪

iswrvxsc  于 2023-10-19  发布在  Windows
关注(0)|答案(2)|浏览(180)

我在想为什么我的多线程应用程序会崩溃。
因此,我使用SetUnhandledExceptionFilter为未处理的异常安装了一个处理程序,然后在处理程序中展开并打印堆栈跟踪。它工作……某种程度上。
我试过很多互联网上的例子,但我总是得到这样的东西:
从来没有错误发生的实际位置。
任何人都可以给给予一个真实的工作的例子打印堆栈跟踪一个未经处理的异常在Windows上?非常感谢。

vdgimpew

vdgimpew1#

如果它发生在您用于开发的机器上:

  • 使用IDE(Eclipse CDT,Qt creator等)和gdb作为调试器,
  • 关闭编译器优化(-O0),
  • 使用调试符号 enabled 进行编译(将-ggdb3标志传递给编译器)。

如果它发生在客户端机器上,那么它是一个更复杂的情况,请参阅:

ix0qys7i

ix0qys7i2#

我有确切的问题,它得到了固定的降级MinGW到7.5。最新版本的MinGW的Boost存在一个问题,导致无法打印堆栈跟踪:

*updating to the latest gcc-mingw(x64), stacktrace doesn't seem to build anymore

你必须去一个相当旧的版本,这可能是不舒服的。
这是我发现的唯一能够为MinGW打印堆栈跟踪的解决方案。

相关问题