我正在使用 Visual C++ 2008 编写 Automate Word 应用程序。我将调试器设置为在 CException 和 COleException 时中断。在调试的时候,有时会遇到如下异常而中断:
MyApp.exe 中 0x7641c54f 处的第一次异常:Microsoft C++ 异常:内存位置 0x068cdbe0 处的 COleException。
此时,断点在函数_malloc_dbg中,当我查看调用堆栈时,我将得到以下内容:
它说“下面的框架可能不正确和/或丢失,没有为 KernelBase.dll 加载符号”。但是我的程序是用调试配置构建的。异常时如何获取调用栈?
谢谢
最佳答案
由于您使用的是 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
关于debugging - 异常时无法正确获取调用堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52832926/