在 Windows 中的 MinGW 中打印堆栈跟踪
Printing stack trace in MinGW in Windows
我正在尝试追踪我的多线程应用程序崩溃的原因。
因此,我使用 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应用程序的崩溃报告
相关文章:
- C++打印堆栈
- 在 Linux 平台上以 C/C++ 打印进程的所有线程堆栈跟踪
- 我如何转换一个基于动态的,基于指针的int堆栈,以便将其打印成字符串
- 无法使用 OOP C++打印堆栈项
- 如何正确打印堆栈的向量
- 为什么谷歌测试不打印堆栈跟踪或文件名
- 在明夫中打印堆栈跟踪
- C++堆栈推送/打印实现
- 如何使用递归反转打印堆栈
- 尝试使用引脚工具从堆栈中打印寄存器的值
- 在 Windows 中的 MinGW 中打印堆栈跟踪
- 如何在C++中打印堆栈跟踪,并在C++中注入代码
- 为什么我可以打印动态分配的对象,但不能打印使用 cout <<在堆栈上创建的对象
- 打印堆栈所有元素的功能
- 打印堆栈的元素
- 正在从信号处理程序打印堆栈跟踪
- 打印堆栈函数
- 如何在c++中使用数组打印堆栈
- 如何在c++中打印堆栈
- Google日志不打印堆栈跟踪