2015-12-19 70 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,就沒有什麼特別的事情可以設置斷點。 –

相關問題