debugging - 异常时无法正确获取调用堆栈

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

我正在使用 Visual C++ 2008 编写 Automate Word 应用程序。我将调试器设置为在 CException 和 COleException 时中断。在调试的时候,有时会遇到如下异常而中断:

MyApp.exe 中 0x7641c54f 处的第一次异常:Microsoft C++ 异常:内存位置 0x068cdbe0 处的 COleException。

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

enter image description here

它说“下面的框架可能不正确和/或丢失,没有为 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/

相关文章:

haskell - 对于线程化Haskell调试,我最好的工具是什么?

debugging - Atom(或其安装的包)在哪里存储调试日志文件?

c++ - c++中一切的基类

asp.net-mvc - Controller 构造函数中的 Ninject Mvc 异常处理

javascript - 诱使浏览器从本地设置/服务器加载 &lt;script&gt; 或 <link rel ="stylesheet"> URL?

c++ - 在模板化类中返回模板变量的方法?

c++ - 在析构函数中调用 remove() 删除文件是否安全?

c++ - MFC : Create shapes in a window

c - 结构和链接列表问题

c++ - 提高正弦/余弦和大型数组的计算速度