出现异常时无法正确获取调用堆栈

时间:2018-10-16 10:02:03

标签: debugging exception visual-c++ exception-handling

我正在使用Visual C ++ 2008编写用于自动Word的应用程序。我设置了调试器,以便它将在CException和COleException时中断。调试时,有时我会在以下异常处中断:

MyApp.exe中0x7641c54f的首次机会异常:Microsoft C ++异常:内存位置0x068cdbe0的COleException。

这时,断点在函数_malloc_dbg中,当我查看调用堆栈时,将得到以下内容:

enter image description here

它表示“以下框架可能不正确和/或丢失,没有为KernelBase.dll加载任何符号”。但是我的程序是使用Debug配置构建的。如何在异常情况下获取调用堆栈?

谢谢

1 个答案:

答案 0 :(得分:2)

由于您使用的是VS 2008,因此不确定是否有帮助,请查看Symbols for kernelbase.dll could not be downloaded - UWP, Release build only, after Windows 10 update

据我所知,您正在使用符号和调试信息来构建应用程序,但是所使用的核心库(在本例中为KernelBase.dll)却没有使用调试符号来构建。您需要掌握或启用KernelBase.dll的调试符号。

编辑:https://social.msdn.microsoft.com/Forums/vstudio/en-US/9a95bb8f-b263-4b0c-ae9c-35023c210a11/kernelbasepdb-not-included?forum=vsdebug 看来您需要kernelbase.pdb