共用方式為


使用 Visual C++ 編寫的元件除錯

當您準備好偵錯 Microsoft Visual C++ 元件中的 COM+ 功能時,您可以設定 Visual C++ 專案或元件服務系統管理工具來啟動調試程式。 如果您使用 Visual C++,您可以透過 OLE RPC 和即時 (JIT) 偵錯功能與遠端用戶端進行除錯。 如果您無法在調試程式下執行用戶端,或用戶端在另一部計算機上執行,您可以使用 COM+ 在調試程式中啟動 設定。 您會在 [元件服務] 系統管理工具中找到此專案,做為 [COM+ 應用程式] [屬性] 對話框 [進階] 索引卷標上的複選框。

當您完成偵錯時,應該關閉您要偵錯的 COM+ 應用程式。 如果伺服器進程仍在執行中,您可能會在下一次嘗試在記憶體中載入現有 DLL 時建立 DLL 時收到錯誤訊息。 若要關閉 COM+ 應用程式,請在主控台樹中的應用程式上點擊滑鼠右鍵,然後按一下「取消」。

注意

如果您使用交易,您可能也會想要增加交易逾時,預設為60秒。 您也可以指定值為 0,有效地指定無限交易逾時期間。 使用元件服務系統管理工具,在 [我的計算機屬性] 視窗的 [選項] 索引標籤 索引標籤上變更異動逾時設定。

 

使用 Visual C++ 偵錯伺服器應用程式元件

偵錯 COM+ 伺服器應用程式時,您可以將用戶端和伺服器應用程式載入除錯程式,以偵錯遠端呼叫。 透過 Visual C++,您可以透過 Just-In-Time (JIT) 和 OLE RPC 設定,對元件的遠端呼叫進行偵錯。 JIT 設定會導致編譯的元件在發生錯誤時啟動 Visual C++ 調試程式;當您逐步執行程式代碼時,OLE RPC 設定可讓調試程式從用戶端逐步執行到元件。

啟用這些功能時,您可以在調試程式下啟動用戶端。 當用戶端呼叫您的元件時,調試程式會逐步執行伺服器進程中的元件程式代碼,即使伺服器位於網路上的不同計算機上也一樣。 必要時,伺服器計算機上會自動啟動偵錯會話。 同樣地,單步執行越過元件程式碼中的 return 語句後,除錯將返回至用戶端程式碼中的下一個語句。

注意

您可以使用調試程式 設定中的 COM+ Launch 來儲存幾個步驟。 這可讓您指定 Visual C++ (或其他) 調試程式,而不需要在 Visual C++ 環境中進行特殊的偵錯設定。 在系統管理工具 [元件服務] 的 [COM+ 應用程式] [屬性] 對話框 [進階] 頁籤上,您會看到一個選項可供勾選。 如需詳細資訊,請參閱本主題中的<不使用Visual C++ 偵錯>。

 

當包含您元件的 COM+ 應用程式是伺服器應用程式時,您必須先使用元件服務系統管理工具關閉應用程式。 若要這樣做,請在主控台樹中以滑鼠右鍵點擊 COM+ 應用程式,然後按一下 關閉

在 Visual C++ 中啟用 RPC 偵錯

  1. 在 Visual C++ 的 [工具] 選單上,按兩下 [選項]

  2. 在 [選項] 對話框的 [偵錯] 索引標籤上,選取 [OLE RPC 偵錯],然後選取 [Just-In-Time 偵錯] 複選框。

  3. 按下 [確定]

若要開始偵錯,請在調試程式中啟動客戶端專案。

您也可以在調試程式中對元件進行偵錯,而不啟動用戶端。 在此情況下,您的元件必須自行啟動調試程式。 若要這樣做,您的元件項目必須指定偵錯會話的可執行檔,以及 COM+ 應用程式識別碼。

若要讓伺服器應用程式元件啟動 Visual C++ 調試程式

  1. 在 [專案] 功能表上,按一下 [設定]。

  2. 在 [項目設定] 對話框中,於 [設定] 方塊中,選取 [Win32 Debug ]

  3. 在 [偵錯] 索引標籤的 [類別] 方塊中,選取 [一般]。

  4. 在 [偵錯會話 可執行檔] 方塊中,輸入 Dllhost.exe的完整路徑,後面接著指定包含元件的 COM+ 應用程式的應用程式識別碼的自變數。

    注意

    使用 [元件服務] 系統管理工具,您會在 COM+ 應用程式的 [屬性] 對話方塊的 [一般] 索引標籤上找到應用程式識別符。 以下是範例:

     

    注意

    C:\Winnt\System32\Dllhost.exe /ProcessID:{applicationID}

     

  5. 按下 [確定]

您現在可以設定斷點、啟動調試程式,並開始對元件進行呼叫。

使用 Visual C++ 對連結庫應用程式元件進行偵錯

若要偵錯連結庫應用程式中的元件,您必須設定用戶端的專案,因為客戶端的進程會裝載連結庫應用程式。

使用 Visual C++ 啟用程式庫應用程式除錯

  1. 在 Visual C++ 的 [專案] 選單上,按兩下 [設定]

  2. 在 [項目設定] 對話框中,在 [的設定] 方塊中,按一下 [Win32 偵錯]

  3. 在 [偵錯] 索引標籤的 [類別] 方塊中,按一下 [其他 DLLs]。

  4. 在 [模組] 清單中,於程式庫應用程式中新增 DLL 元件。 這可讓您在實際載入 DLL 之前設定斷點。

  5. 按下 確定

不使用 Visual C++ 進行偵錯

無論您是否使用 Visual C++ 進行偵錯,都可以使用調試程式中的 Launch 設定來指定元件應該在其中執行的調試程式。

若要從元件服務系統管理工具指定調試程式

  1. 在主控台樹中,選取包含您要偵錯之元件的 COM+ 連結庫應用程式。

  2. 以滑鼠右鍵點擊應用程式,然後點擊 [屬性] 。

  3. 在應用程式的 [屬性] 對話框中,點擊 [進階] 索引標籤。

  4. 在 [偵錯] 底下,選取 [在偵錯器中啟動] 複選框。

  5. 在 [調試程序路徑] 方塊中,輸入您想要使用的調試程序路徑。 您也可以按下 瀏覽 來定位偵錯工具。 以下是範例:C:\Winnt\System32\Ntsd.exe。

  6. 按下 [確定]。

以 Visual Basic 撰寫的偵錯元件