如何利用VC的Remote Debug功能

環境:VC6 SP4 WinXP

假設有下面一段代碼:

void CChildView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
*	dc.MoveTo(0,0);
*	dc.LineTo(100,10);
*	dc.LineTo(100,0);
*	dc.LineTo(200,10);
}

如果你要在調試的過程中觀看每次畫線的結果在本機上進行調試(*表示斷點)是不可能的,因爲每次返回到VC中時,WM_PAINT消息有會重新發送到窗口,並且窗口上的內容也會消失。

在VC中提供了Remote Debug的功能,使得開發人員可以將程序在另外一臺PC上運行,然後在本機對程序進行調試。下面講述如何進行這一操作:

準備環境

  Remote PC Host PC
含義 實際運行被調試程序的PC 運行VC的PC
要求 拷貝如下文件到系統目錄:MFC42D.DLL MFCO42D.DLL MSVCRTD.DLL MSVCP60.DLL PSAPI.DLL(位於Host PC的系統目錄 Windows/system32)
拷貝如下文件到PC:DM.DLL MSDIS110.DLL MSVCMON.EXE TLN0T.DLL(位於Host PC的VS安裝目錄下Common/MsDev98/Bin)
安裝有VC
目錄共享 將Host PC上共享的目錄映射成爲一個盤,如Z: 共享出包含有被調試的程序的目錄
假設Host PC上的程序處於C:/test,那麼將C:/test共享,並在Remote PC將該共享目錄映射爲Z:

在Remote PC上運行MSVCMON.EXE,並選擇Connect。

在Host PC的VC環境中進行設置,首先通過菜單Project/Setting打開設置對話框,然後選中Debug頁面,將遠程文件設置爲:z:/debug/test.exe,就如同你在Remote PC上運行該程序時的名稱。

在Host PC的環境中設置,通過菜單Build/Debugger Remote Connection打開設置對話框,然後設置Remote PC的地址。

然後就可以在Host PC上開始調試了,按下F5開始調試。但請保證Remote PC上已經運行了MSVCMON。在開始調試的過程中VC可能要求你提供各種DLL的位置,你按照要求提供DLL在Host PC上的文件位置就可以了。

你試試上面的代碼的調試情況,你會看見在Remote PC上運行的測試程序順次畫出的這些線段。

最後你可以通過菜單Project/Setting打開設置對話框,看看開始調試時指定的DLL的對應關係。

提示:爲了方便在Remote PC上也安裝VC開發環境,並且最好保證兩臺機器的OS是安裝在同一個盤的同一個目錄。

另外在VS7中也可以用類似的方法進行調試,此外VS7中的調試還可以直接指定Remote PC上已經存在的一個進程進行調試。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章