【问题标题】:How to step into function of a dll when you have the .pdb file and the C++ source code with VS2010?当你有.pdb文件和VS2010的C++源代码时,如何进入dll的功能?
【发布时间】:2013-04-25 14:18:25
【问题描述】:

我正在尝试调试我编写的由 Visual Studio 2010 中的应用程序使用的动态库。我可以进入直到我的 dll 的函数,但我无法更深入地查看源代码。如果我打开 Disassembly 窗口,我可以进入 ASM 代码,但我看不到源代码或任何符号。

我已经构建了一个 .dll 和一个导入 .lib。与 dll 关联的 .pdb (/Zi) 文件也已构建(使用/DEBUG)。优化被禁用 (/Od)。

我的应用程序将导入库与 #pragma comment(lib, "myImport.lib") 链接,因为该应用程序有一个我无法自己配置的构建工具。

我的应用程序在调试中运行,在调试器的 Modules 中,我可以看到我的 dll 以及符号都已加载。

我还检查了选项>调试>常规启用我的代码选项被禁用。

如何强制VS2010进入我的dll的功能?

【问题讨论】:

  • 你的项目知道dll的pdb文件的位置吗?

标签: c++ visual-studio-2010 debugging dll step-into


【解决方案1】:

我们有一个稍微不同的设置,我们启动另一个我们没有源代码的应用程序,然后从该应用程序加载我们自己构建的 dll。要对其进行调试,我们使用 Visual Studio 命令 Debug / Attach to Process... 也许此命令可以引导您成功调试 dll 的源代码。

【讨论】:

    【解决方案2】:

    正如您所料,这是编译不兼容。该 dll 是为 CLR 运行时编译的 (/clr)。我猜是因为VS2010的默认配置。因为我删除了这个选项,所以一切都可以像往常一样调试了。

    【讨论】:

      猜你喜欢
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 2015-11-13
      • 1970-01-01
      • 2012-10-03
      • 2020-03-06
      • 2017-11-07
      相关资源
      最近更新 更多