COM 伺服器和容器偵錯

COM 應用程式可以在程式設計人員直接控制之外執行許多工作。DLL 之間的通訊、物件的使用次數和剪貼簿作業只是您可能碰到預期外行為的一小部分而已。發生這種狀況時,第一步驟便是追蹤搜尋問題的來源。

Visual Studio 偵錯工具可支援逐步跨越 (Step Across) 和逐步執行容器和伺服器。這包括可支援逐步跨越遠端程序呼叫 (RPC)。

本主題內容

  1. Debugging a COM Server and Container in the Same Solution

  2. Debugging a Server Application Without Container Information

  3. Debugging a Server and Domain Isolation (SDI) Application

偵錯 COM 伺服器與同一方案中的容器

您可以同一方案內使用兩個專案的 COM 伺服器和容器 (Container) 進行偵錯。在每個專案中設定適當的中斷點,並進行偵錯。當容器在碰到中斷點的伺服器呼叫函式時,該容器將會等待,直到從伺服端程式碼傳回 (也就是直到您完成其偵錯程序)。您也可以追蹤跨越了處理序 (Process) 界限的呼叫。如需詳細資訊,請參閱追蹤巨集

偵錯 COM 容器的方法和標準程式的偵錯方法相似。不同之處在於您在偵錯一個會產生回呼 (Callback) 的事件時 (例如將資料拖曳到容器應用程式上)。在這種情況下,您必須在回呼函式 (Callback Function) 中設定一中斷點。

偵錯伺服器應用程式沒有容器資訊

如果您不需要或不想使用容器應用程式的偵錯資訊,開始偵錯伺服器應用程式是三個步驟的程序:

  1. 如應用程式方式開始偵錯伺服器。

  2. 依需要設定中斷點。

  3. 啟動容器應用程式 (Container Application)。

伺服器與網域隔離 (SDI) 應用程式偵錯

如果您正在偵錯 SDI 伺服器應用程式,您必須替 C/C++、C# 或 Visual Basic 專案,在 [<專案> 屬性頁] 對話方塊的 [命令列的引數] 屬性內指定 /Embedding 或 /Automation。

透過這些命令列的引數,偵錯工具可以啟動伺服器應用程式,就如同它是由容器所啟動。從程式管理員或檔案管理員啟動容器,將導致容器使用由偵錯工具啟動的伺服器執行個體。

若要存取 [<專案> 屬性頁] 對話方塊,請在 [方案總管] 中對您的專案按一下滑鼠右鍵,接著選擇捷徑功能表的 [屬性]。若要尋找 [命令列的引數] 屬性,請展開 [組態屬性] 分類,然後按一下 [偵錯] 頁。

請參閱

其他資源

偵錯 COM 和 ActiveX