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

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

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

debugging - 不能正确获取异常的调用堆栈-LMLPHP

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

谢谢

最佳答案

由于您使用的是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

10-06 14:54