【发布时间】:2012-11-02 23:34:06
【问题描述】:
我有一个单独的 Visual Studio 解决方案,其中的 DLL 是用 C 编写的。我在另一个解决方案中使用它;在控制台 C++ 项目中。在调试控制台项目时,我进入了一个 DLL 函数。
但是,打开的页面报告 There is no source code available for the current location 调用堆栈位置为 MyConsole.exe!_tailMerge_MyLibrary_dll()。我在控制台项目中使用延迟加载 DLL 文件。当显示无源代码页面时,我检查输出窗口并找到加载的 DLL 行的符号。为什么 Visual Studio 2012 无法单步执行此 DLL 代码?
【问题讨论】:
-
你的dll是用调试信息构建的吗?
-
生成调试信息:是 (/DEBUG)
-
我不确定,但听起来 VS 能够加载 dll,但它不知道在哪里(在您的机器上)可以找到源文件。 dll 包含它需要链接和编译的二进制文件,但它没有物理源文件。我怀疑您需要将构成 dll 的文件导入您的项目并将其指向文件,以便调试器能够让您“单步执行”它们。
-
我添加了 dll 项目来测试控制台解决方案,但没有任何结果。还是找不到源代码
-
@AlvinWong 那么它需要将 dll 项目添加到 c++ 控制台所在的解决方案中,并将项目引用添加到控制台项目中?
标签: c++ c visual-studio dll visual-studio-debugging