調試進程外服務(Debugging Out-Of-Process Server)
因為服務的方法和事件的實現要靠客戶來觸發,所以調試服務必須要先啟動客戶程式。
方法一:
1. 在Project àSetting的Debug Tab上輸入客戶程式;
2. 在服務程式代碼中設定斷點既可調式。
方法二:(在客戶工程中啟動調試任務)
1. 開啟客戶工程,設定為Debug編譯模式;開啟JIT( Jst-In-Time )選項。
[ ToolàOptionàDebug Tab] 選定 "Just-In-Time Debugging " 和
"OLE RPC Debugging" 選項。
2. 在代碼中,調用服務的那行代碼處設定斷點,啟動Debugger運行客戶程式;
3. 當調試在斷點處(調用服務處)停止時,跟進(Setp Into)調用,如果你的應用
程式連到了MFC,VC會自動開啟進入到正確合適的代碼處;
4. 用步進( Step Over )調試直至出現彙編,在客戶stub DLL的開始處標記;
5. 繼續運行通過Stub和Proxy單步調試,當步進到服務的方法時,VC會自動啟動
debugger的另一個執行個體。
< 參見MSDN "HOWTO:Debug OLE Application >
Debug the Message ActiveX Control
[Project àSetting à Debug Tab,在"Executable For Debug Session" 的中選
擇合適的程式]
調試遠程對象(Debug Remote Object)
Attaching the Debugger to a Remote Process
1. 開啟客戶程式,設定好斷點;
2. 用Debugge運行程式直至觸發斷點,確定此此時對象在服務方已被啟用;
3. 在組件所在的機子上啟動VC,啟用Attach To Process命令,從彈出的進程列表
框中選擇組件或她的Surrogate,使Debugger吸附到對象的進程中。
4. 在VC環境中開啟組件原始碼,設定好斷點;
5. 在用戶端,恢複運行程式,當遠程對象運行到斷點時,停止