2015-12-19 46 views
0

我正在使用Visual Studio Ultimate 2013同时开发多个本机C++ DLL。将Visual Studio调试器附加到多个DLL

这些DLL是应用程序的插件。我已经配置了Visual Studio的调试器,它启动该应用程序(它反过来加载我的插件)并附加到它。

因为这些插件都应该一起工作,我想调试在一起,在他们的地方断点等

有没有办法来实现这一目标?

Running two projects at once in Visual Studio中描述的解决方案似乎不适用于此。

+0

您调试进程,而不是DLL。只要你运行了进程,那么*该进程加载的任何* DLL都可以被调试。一旦包含代码行的DLL被加载,您设置的断点就会变为布防状态。这是非常容易发现的,很难猜出为什么你有问题。一定要使用调试器的Debug> Windows> Modules窗口来确保你能看到DLL。然后仔细检查该DLL的.pdb文件是否可以找到。右键单击列表中的DLL并选择“符号加载信息”。 –

+0

感谢汉斯,你说得对。出于某种原因,在我以前的尝试中,不是启动项目的DLL中的断点从不活动。现在看起来工作正常。 –

回答

1

我在启动DLL时所做的工作是在Visual Studio中打开DLL的调试版本,并确保调试版本是由调用应用程序加载的版本。我开始调用应用程序,并通过设置断点或显示警报暂停它。然后返回到Visual Studio以获取DLL,然后从“调试”菜单中选择“附加到进程”。选择调用应用程序的过程。此时,您应该能够在Visual Studio中的DLL中设置断点。一旦完成,您可以继续运行调用应用程序。我建议你在VS中打开每个你正在使用的DLL。

+1

谢谢。我所做的是选择其中一个DLL作为启动项目,并使用主机应用程序的可执行文件作为调试命令。该应用程序被配置为在启动时自动加载我的插件。正如汉斯上面所说,只要主机应用程序加载了多个DLL,就没有什么特别的事情可以设置断点。 –

相关问题