2013-06-27 58 views
3

基本上,我正在開發將由第三方軟件使用的DLL(開放接口)。我想在由第三方DLL加載後調試我的DLL,因爲我發現了一個特定的錯誤,只有當我的DLL由此第三方軟件加載時纔會發生(我的DLL適用於所有其他接受此開放接口的軟件)如何附加到加載我的DLL並進行調試的進程

我在我的代碼DLL中設置__debugbreak()並運行第三方軟件。一個Visual Studio對話框確實跳起來詢問我是否想調試..但是當我點擊OK後,而不是進入一個顯示我設置斷點的代碼行的Visual Studio窗口,Visual Studio剛剛崩潰。

我發現第三方軟件加載我的DLL並在另一個線程中運行它。我懷疑這是第三方軟件崩潰的原因,因爲有效地__debugbreak()在主線程啓動的線程中拋出未捕獲的執行。

在這種情況下,我該如何調試我的DLL?

+2

什麼是第三方軟件?爲什麼將它列爲'c'和'C++'?你有沒有試圖在彈出警告對話框之前將調試器附加到進程? – Yakk

+0

這是一個內部的odbc項目,由c和C++混合實現。 –

+0

我試圖在彈出的警告對話框之前附加調試器,但VS顯示符號無法加載... –

回答

0

不幸的是,VS崩潰,但你可能會找到解決辦法。

最好先啓動調試會話。或者當進程在消息框或其他輸入上被阻止時,使用「附加到進程」。也更好地使用斷點。

使用__debugbreak()或強制訪問衝突嘗試詢問VS的新實例不是現有的實例。

相關問題