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