在Delphi7中調試COM+
劉曉明(Cipher)收集整理
開發COM+應用系統最令人頭痛的問題便是如何調試COM+組件了。由於COM+是執行在COM+的執行環境中,因此Delphi 的程式設計師無法像Delphi的分散式多層應用系統一樣可以直接在Delphi 的IDE 中設定應用程式伺服器的斷點來偵錯。
事實上, Delphi 仍然可以在Delphi 的整合開發環境中偵錯COM+元件,也可以讓程式設計師在整合開發環境中在COM+元件的程式單元中設定斷點,然後執行客戶端應用程式呼叫COM+元件。此時Delphi 便會把執行控制權帶到Delphi 的整合開發環境中,並且暫停在程式設計師設定的斷點上讓程式設計師開始調試。從此開始,程式設計師就可以像調試一般的應用程式一樣來調COM+元件了。不過要如此調試COM+元件,程式設計師必須先做一些設定。
1.在Delphi 的整合開發環境中啟動要被調試的COM+ 元件項目,點PRojects|Options 選單,在彈出的對話框中選擇Linker頁,選取其中的include Td32 info 和include remote debug symbol ;
2、點Run|Install Com+ Objects選單,註冊COM+元件,最好是註冊到新的應用程序,也可以註冊到已有的應用程式(這個應用程式需要是由Delphi 的註冊COM程式產生的)。
3.運行Win2000的控制面板|管理工具|組件服務,在COM+應用程式中找到剛才COM註冊的應用程序,點右鍵,選擇“屬性”菜單,在彈出的對話框中,選擇“高級”頁,選中其中的「在偵錯器中啟動」選項,在下面的偵錯路徑中會有類似如下的內容:"C:/Program Files/Borland/Delphi7/Bin/bordbg70.exe" dllhost.exe /ProcessID:{9CEC476D-83A5-4C2B-AFF1-3E83A147B866}
4.回到Delphi的整合開發環境,點選Run|Parameters 選單,在對話方塊中,Hostapplication設為:C:/WINNT/system32/DLLHOST.EXE ,(要依照你的作業系統安裝狀況設定)。 Parameters 設為:/ProcessID:{9CEC476D-83A5-4C2B-AFF1-3E83A147B866};這個GUID的值要和Win2000元件服務中的屬性值一致,可以從那邊直接COPY過來。
5.設定斷點,在Delphi的整合開發環境中運行COM;
6.在Windows中(或新開的Delphi環境中)執行呼叫這個COM的客戶端程式。
這時會發現,Delphi開發環境中的COM停在斷點處了,就可以接下來單步追蹤調試了。