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

Printing stack trace in MinGW in Windows

本文关键字:打印 堆栈 跟踪 MinGW Windows 中的      更新时间:2023-10-16

我正在尝试追踪我的多线程应用程序崩溃的原因。

因此,我使用 SetUnhandledExceptionFilter 为未处理的异常安装了一个处理程序,然后在处理程序中展开并打印堆栈跟踪。它有效..有点。

我尝试了很多来自互联网的例子,但我总是得到这样的东西:

1 - 0x00401ecc - Unknown Function
2 - 0x00401e83 - Unknown Function
3 - 0x004013fa - Unknown Function
4 - 0x7584336a BaseThreadInitThunk
5 - 0x77dc9f72 RtlInitializeExceptionChain
6 - 0x77dc9f45 RtlInitializeExceptionChainPress <RETURN> to close this window...

从来不是发生错误的实际位置。

任何人都可以给出一个在 Windows 上为未经处理的异常打印堆栈跟踪的真实工作示例吗?提前非常感谢。

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

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

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

  • 有没有办法在运行使用 MinGW 编译的程序时生成 gdb 可读的核心转储?
  • MinGW应用程序的崩溃报告