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

时间:2014-01-09 08:55:10

标签: c++ gcc mingw callstack

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

因此,我使用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上打印未处理的异常的堆栈跟踪吗?非常感谢提前。

1 个答案:

答案 0 :(得分:1)

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

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

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