在另一个解决方案中调试DLL

时间:2009-12-27 08:00:29

标签: c++

我有一个* .exe项目,它是在vs2005下的一个解决方案中编写的,我有一个DLL文件 * .exe项目正在使用。 问题是dll是用adiffrent解决方案编写的,当我尝试连接时 从dll解决方案到* .exe文件(运行之后)以调试dll,我得到没有符号加载错误(我无法调试dll)加载了altough符号(我可以看到* .pdb编译dll解决方案后创建的文件。)

我该怎么办?

2 个答案:

答案 0 :(得分:0)

如果您有生成dll的visual studio项目,请在调试配置中编译它并启动调试。你会被要求提供可执行文件;选择你拥有的那个(从你的其他解决方案),你就可以调试dll。

现在,如果你想同时调试两者,我相信你的方式是正确的,只要exe使用的dll是你刚刚在其他解决方案中编译的那个。这可能是你遇到的问题。

答案 1 :(得分:0)

首先检查“输出”窗口,它将显示在加载DLL时是否可以找到DLL的调试符号。接下来,切换到Debug + Windows + Modules,右键单击您的DLL并选择“Symbol load information”。这显示了调试器查找DLL的.pdb文件的位置。确保.pdb位于其中一个路径中。

如果问题是没有获取DLL的源代码而不是丢失.pdb文件,请首先删除解决方案目录中隐藏的.suo文件。下次调试DLL时,Visual Studio将再次提示您提供源代码文件的路径。不要按Escape键,输入路径。您可以做的另一件事是右键单击解决方案资源管理器窗口中的解决方案,属性,公共属性,调试源文件。将路径添加到DLL源代码目录。