【发布时间】:2013-01-25 03:13:07
【问题描述】:
我的代码有时会运行到“纯函数调用”错误,所以我使用 _set_purecall_handler 来注册处理程序。在调试模式下,我可以使用 StackWalker 获得完整的调用堆栈,但在发布模式下,StackWalker 显示的有用信息很少。我尝试使用 MiniDumpWriteDump 并设置 ExceptionPointers = NULL。崩溃后,我得到了一个转储文件,但 vs 无法调试它并显示:
找不到指定的模板。请检查完整路径是否正确。
在这种情况下是否可以从已发布的应用程序中获取信息?
【问题讨论】:
-
你可以随时提供调试信息
-
@Cheersandhth.-Alf 我也想得到一些调试信息。有一些石灰做纯函数调用,我想在崩溃时从调用堆栈中找到位置。
-
如果默认的 _purecall_handler 显示一个消息框,那么不要调用 _set_purecall_handler。相反,在显示错误消息时将 windbg 附加到进程,配置符号,然后发出
~*kbwindbg 命令以获取所有线程的调用堆栈。然后查看每个调用堆栈,直到看到一个调用 MessageBox 的某个变体。