【问题标题】:Debugging a debug C++ COM dll with pdb but without source code使用 pdb 调试调试 C++ COM dll 但没有源代码
【发布时间】:2015-11-13 17:36:34
【问题描述】:

我在(比如 Connection.dll)中运行应用程序时遇到崩溃

在崩溃之前,以下断言来自 C:\Program Files\Microsoft Visual Studio 11.0\VC\atlmfc\include\atlcom.h 行号:4735(见下文)

ATLASSERT(pdispparams->cArgs == (UINT)info.nParams);

现在客户端已经提供了 Connection.dll 的 pdb 文件。

但是客户端没有提供Connection.dll的源代码。

我想找出问题的根本原因(至少在 Connection.dll 中的函数名)。

对此的任何帮助将不胜感激。

谢谢, 桑迪普帕瓦尔

【问题讨论】:

  • 一个 PDB 文件从二进制文件中的位置映射到源文件中的位置。如果没有源文件,我认为它对你没有多大好处。
  • 根本原因很容易看出,您正在调用一个参数数量错误的方法。这永远不会有一个好的结局。您需要从新类型库更新您的 MFC 包装器。

标签: c++ dll atl pdb atlcom


【解决方案1】:

如果您可以让 VisualStudio 加载 PDB,它将向您显示函数名称、堆栈和参数,以便为您提供一些线索。将 PDB 与 DLL 放在一起可能会起作用,或者您可能需要将其添加到符号路径中。如果 PDB 与 DLL 的版本不完全匹配,它通常会拒绝加载它,这是一个 PITA。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-06
    • 2012-06-21
    • 2011-04-08
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多