注:原文地址 http://blog.csdn.net/coding_hello/archive/2008/11/23/3357384.aspx VC開發(fā)環(huán)境之所以提供遠(yuǎn)程調(diào)試的能力,是因?yàn)橛行┣闆r下單機(jī)調(diào)試會(huì)讓你崩潰掉。。。比如,調(diào)試GUI程序的WM_PAINT消息,因?yàn)橐獑尾秸{(diào)試,所以調(diào)試器會(huì)對(duì)界面的重繪產(chǎn)生副作用(Heisenberg不確定性原理)。當(dāng)然還有些別的情況也適用,比如程序在測(cè)試環(huán)境運(yùn)行的好好的,但是在客戶那行為總是異常,這時(shí)候如果可以TCP遠(yuǎn)程連接上去維護(hù)的話,就能通過遠(yuǎn)程調(diào)試的特性在出現(xiàn)狀況的系統(tǒng)環(huán)境中排錯(cuò)~
下面來說一下具體的做法。先明確下概念,遠(yuǎn)程調(diào)試嘛,自然是兩個(gè)機(jī)器之間調(diào)試。程序運(yùn)行在目標(biāo)機(jī)器上,調(diào)試器運(yùn)行在本機(jī)。當(dāng)然,目標(biāo)機(jī)器上還是要有少許輔助程序才能跟本機(jī)的調(diào)試器connect上,以便通訊。一般來說,只需要copy四個(gè)文件到目標(biāo)機(jī)器上就行了:MSVCMON.EXE、DM.DLL、TLN0T.DLL和MSDIS110.DLL。這四個(gè)文件都能在VC6目錄的Common\MSDEV98\Bin目錄下面找到。copy過去之后,運(yùn)行msvcom.exe,看下圖片~

有個(gè)Settings的按鈕,不用管。直接點(diǎn)Connect就行了~
接著看看本機(jī)這邊調(diào)試器的設(shè)置。首先設(shè)置好遠(yuǎn)程調(diào)試開關(guān),在Build菜單下有個(gè)Debuger Remote Connecting的子菜單,點(diǎn)之。出現(xiàn)個(gè)窗口,默認(rèn)是在Local項(xiàng),我們要選的是Network(TCP/IP),然后點(diǎn)設(shè)定。會(huì)彈出一個(gè)對(duì)話框,輸入目標(biāo)機(jī)器的ip或者機(jī)器名,最后點(diǎn)OK就行了。

接下來把工程打開,設(shè)置最后一步。假設(shè)生成的可執(zhí)行程序名為RemoteDebug.exe,在目標(biāo)機(jī)器上的路徑為d:\Prj\Remote.exe,那么,在本機(jī)的Project Settings里面,選擇Debug頁(yè)面的Remote executable path and file name下面的編輯框中輸入目標(biāo)機(jī)器中程序的路徑:d:\Prj\RemoteDebug.exe。注意,這里寫的是從目標(biāo)機(jī)器的角度所看到的路徑。

然后編譯一下程序,把新編譯出來的RemoteDebug.exe復(fù)制到目標(biāo)機(jī)器的d:\Prj下面,就可以在本機(jī)像平常一樣調(diào)試了。
要注意的事項(xiàng):
1.要求本機(jī)與目標(biāo)機(jī)器上的版本要完全一樣才行。
2.在本機(jī)設(shè)置遠(yuǎn)程調(diào)試路徑時(shí)一定要填目標(biāo)機(jī)器上看到的路徑,而不是本機(jī)看到的網(wǎng)絡(luò)路徑
3.調(diào)試開始時(shí),會(huì)提示些符號(hào)信息的東東,都確定就行了
4.遠(yuǎn)程調(diào)試的設(shè)置是全局設(shè)置,跟項(xiàng)目無關(guān)。實(shí)際上,上面提到本機(jī)調(diào)試器設(shè)置時(shí)都沒打開工程。所以,當(dāng)不需要遠(yuǎn)程調(diào)試時(shí),要從Build菜單下面的Debuger Remote Connecting的子菜單設(shè)置回Local模式。否則每次都會(huì)問你要遠(yuǎn)程的信息噢~~~