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頁面的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)試了。