2011-04-04 69 views
3

我正在編寫一個運行在dllhost.exe代理程序中的inproc com dll,但我遇到了調試它的問題。調試運行在dllhost.exe中的inproc com服務器

如果有多個dllhost.exe一次運行,那麼找到合適的調試器連接是很麻煩的。如果有很多正在運行,是否有簡單的方法來識別你的?

感謝

+0

歡迎來到Stack Overflow。請單獨發佈您的問題。這樣,你會爲他們兩人獲得最好的答案(而不是隻回答其中一個問題的回答,或者很好地回答一個問題,另一個回答不好)。它使投票更容易,使您更容易選擇最佳答案,併爲您(和其他人)提供更多獲得聲望點的機會。點擊「編輯」鏈接,刪除最後一段,並將其粘貼爲新問題。 – 2011-04-04 16:20:35

+0

你給自己很多很好的理由來創建自己的代理人。 – 2011-04-04 16:46:13

+0

將它分成2個問題,另一個在這裏 http://stackoverflow.com/questions/5542443/generating-dmp-files-from-an-inproc-com-dll-running-in-dllhost-exe – bdwain 2011-04-04 18:08:15

回答

1

的Process Explorer(http://technet.microsoft.com/en-us/sysinternals/bb896653)擁有便利的功能,讓你看看哪些進程已加載哪些DLL。您還可以在所有正在運行的進程中搜索DLL。

Sysinternals還有一個名爲ListDLLs(http://technet.microsoft.com/en-us/sysinternals/bb896656)的命令行實用程序,它應該適合您。

一旦找到具有DLL的進程的PID,就可以附加到它。

+0

請確保只有在你知道「COM代理」的含義時纔回答這個問題。 – 2011-04-04 16:54:41

+1

@Hans:我看不出如何計算出哪些進程加載了一個特定的DLL與COM代理有什麼不同。據我所知,上述方法應該仍然有效。請不要暗示答案不正確,請說明您認爲錯誤的原因。評論將會更有用。 – pepsi 2011-04-04 17:36:29

0

還有另一種策略。只是不要試圖確定要附加到哪個。在代碼中設置斷點並附加到所有dllhost.exe進程 - 當命中斷點時,進程將在調試器下暫停。