【问题标题】:Cannot Get Call Stack Correctly on Exception异常时无法正确获取调用堆栈
【发布时间】:2018-10-16 10:02:02
【问题描述】:

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

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

此时断点在函数_malloc_dbg中,当我查看调用堆栈时,会得到如下:

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2010-10-19
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 2014-04-23
      • 2023-03-22
      • 2019-10-11
      • 2013-02-16
      相关资源
      最近更新 更多