關(guān)鍵字 VC debug
文章原始出處 http://www.copathway.com/vchelp/view_article.asp?ft=2&article_id=797
介紹
在VC中提供了Remote Debug的功能,使得開(kāi)發(fā)人員可以將程序在另外一臺PC上運行,然后在本機對程序進(jìn)行調試。
正文
如何利用VC的Remote Debug功能
環(huán)境: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);
}
如果你要在調試的過(guò)程中觀(guān)看每次畫(huà)線(xiàn)的結果在本機上進(jìn)行調試(*表示斷點(diǎn))是不可能的,因為每次返回到VC中時(shí),WM_PAINT消息有會(huì )重新發(fā)送到窗口,并且窗口上的內容也會(huì )消失。
在VC中提供了Remote Debug的功能,使得開(kāi)發(fā)人員可以將程序在另外一臺PC上運行,然后在本機對程序進(jìn)行調試。下面講述如何進(jìn)行這一操作:
準備環(huán)境 Remote PC Host PC
含義 實(shí)際運行被調試程序的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上共享的目錄映射成為一個(gè)盤(pán),如Z: 共享出包含有被調試的程序的目錄假設Host PC上的程序處于C:\test,那么將C:\test共享,并在Remote PC將該共享目錄映射為Z:
在Remote PC上運行MSVCMON.EXE,并選擇Connect。
在Host PC的VC環(huán)境中進(jìn)行設置,首先通過(guò)菜單Project\Setting打開(kāi)設置對話(huà)框,然后選中Debug頁(yè)面,將遠程文件設置為:z:\debug\test.exe,就如同你在Remote PC上運行該程序時(shí)的名稱(chēng)。
在Host PC的環(huán)境中設置,通過(guò)菜單Build\Debugger Remote Connection打開(kāi)設置對話(huà)框,然后設置Remote PC的地址。
然后就可以在Host PC上開(kāi)始調試了,按下F5開(kāi)始調試。但請保證Remote PC上已經(jīng)運行了MSVCMON。在開(kāi)始調試的過(guò)程中VC可能要求你提供各種DLL的位置,你按照要求提供DLL在Host PC上的文件位置就可以了。
你試試上面的代碼的調試情況,你會(huì )看見(jiàn)在Remote PC上運行的測試程序順次畫(huà)出的這些線(xiàn)段。
最后你可以通過(guò)菜單Project\Setting打開(kāi)設置對話(huà)框,看看開(kāi)始調試時(shí)指定的DLL的對應關(guān)系。
提示:為了方便在Remote PC上也安裝VC開(kāi)發(fā)環(huán)境,并且最好保證兩臺機器的OS是安裝在同一個(gè)盤(pán)的同一個(gè)目錄。
另外在VS7中也可以用類(lèi)似的方法進(jìn)行調試,此外VS7中的調試還可以直接指定Remote PC上已經(jīng)存在的一個(gè)進(jìn)程進(jìn)行調試。

