2008-12-16 43 views
1

我有一箇舊的C++ COM組件,它必須保持Visual Studio 6.0格式。我不知道如何在實際的COM組件中調試代碼。如何調試在ASP頁面中創建的Visual Studio 6.0中的COM對象?

我能夠在調試模式下創建它,添加斷點並將其附加到dllhost.exe進程,但Visual Studio環境只會顯示從dllhost.exe反彙編而不是我的源代碼(它也是不停止在斷點上)。

我記得前一段時間有一種方法可以讓你的調試動作(即當Visual Studio 6.0詢問你的可執行文件啓動你的d​​ll時)使IIS(或inetinfo.exe)目標和IIS運行在單一過程模式下。有一個註冊表鍵你需要改變,但谷歌搜索沒有幫助。

回答

2

如果是基於VB6的COM組件,則可以在VB6中打開該項目並運行它(DLL項目無法運行)。項目屬性有一些選項,可以讓它運行,以便它自己運行&註冊表。

現在,嘗試點擊ASP頁面,該頁面會調用COM組件。在類文件中設置的斷點將被擊中,因爲調用是從ASP頁面進行的。

0

首先,PDB文件(在編譯過程中生成)應該與DLL具有相同的目錄(可以在項目屬性中設置)。

如果你的對象不使用某些特定ASP-功能(請求,響應,Session對象),您可以複製它的調用代碼通過設置Cscript.exe來.vbs文件和調試your.vbs作爲調試對象程序。

有解釋(for example)如何調試ISAPI DLLs - 它們也適用於您的COM對象(從操作系統/調試器的角度來看,這兩個DLL都加載到IIS進程中)。注意你的IIS版本和進/出進程內的東西。

最後,如果沒有其他幫助,您可以通過OutputDebugString函數添加一些日誌記錄,並在免費DebugView程序中看到它。

相關問題