在单独的项目中调试多个相关的dll

时间:2010-10-05 13:53:56

标签: c++ visual-studio debugging dll

我必须在他们自己的项目中调试多个dll。有一个父可执行文件加载一个dll,它作为其他dll的容器。 我的问题是我如何使用Visual Studio 2005 for C ++来调试整个'组件'即:所有涉及的dll。

2 个答案:

答案 0 :(得分:2)

如果它们都在同一个解决方案中,请在DLL项目中设置要调试的断点,右键单击EXE项目,然后选择Debug>开始新实例。

如果它们位于不同的解决方案中,请打开DLL解决方案,右键单击该项目,展开左侧树中的Configuration Properties节点,选择Debugging。将Command属性设置为指向另一个项目中EXE的调试版本。然后设置断点并按F5开始调试。

答案 1 :(得分:2)

随意挑选一个DLL项目作为启动项目,无所谓。右键单击+属性,调试。将“Command”设置设置为将加载DLL的测试EXE的路径。如果你没有一个好的,那么只需写一个,也可以将它添加到项目中并使其成为启动项目。

EXE启动时注意输出窗口。您将看到每个加载的DLL的通知。只要解决方案中的一个DLL被加载,然后调试器跳入,查找DLL的.pdb文件并激活您在DLL源代码中设置的任何断点。除非EXE加载它,否则无法调试DLL。

如果仍然没有启用断点,则使用Debug + Windows + Modules并在列表中找到DLL。右键单击它并选择符号加载信息以找出调试器查找.pdb文件的位置。这不会经常出错,因为DLL包含.pdb文件的路径。更典型的故障模式是EXE根本没有加载DLL。