vc++6.0除錯篇:遠端除錯收藏
vc開發環境之所以提供遠端除錯的能力,是因為有些情況下單機除錯會讓你崩潰掉。。。比如,除錯gui程式的wm_paint訊息,因為要單步除錯,所以偵錯程式會對介面的重繪產生***(heisenberg不確定性原理)。當然還有些別的情況也適用,比如程式在測試環境執行的好好的,但是在客戶那行為總是異常,這時候如果可以tcp遠端連線上去維護的話,就能通過遠端除錯的特性在出現狀況的系統環境中排錯~
下面來說一下具體的做法。先明確下概念,遠端除錯嘛,自然是兩個機器之間除錯。程式執行在目標機器上,偵錯程式執行在本機。當然,目標機器上還是要有少許輔助程式才能跟本機的偵錯程式connect上,以便通訊。一般來說,只需要copy四個檔案到目標機器上就行了:msvcmon.exe、dm.dll、tln0t.dll和msdis110.dll。這四個檔案都能在vc6目錄的common/msdev98/bin目錄下面找到。copy過去之後,執行msvcom.exe,看下~
有個settings的按鈕,不用管。直接點connect就行了~
接著看看本機這邊偵錯程式的設定。首先設定好遠端除錯開關,在build選單下有個debuger remote connecting的子選單,點之。出現個視窗,預設是在local項,我們要選的是network(tcp/ip),然後點設定。會彈出乙個對話方塊,輸入目標機器的ip或者機器名,最後點ok就行了。
接下來把工程開啟,設定最後一步。假設生成的可執行程式名為remotedebug.exe,在目標機器上的路徑為d:/prj/remote.exe,那麼,在本機的project settings裡面,選擇debug頁面的remote executable path and file name下面的編輯框中輸入目標機器中程式的路徑:d:/prj/remotedebug.exe。注意,這裡寫的是從目標機器的角度所看到的路徑。
然後編譯一下程式,把新編譯出來的remotedebug.exe複製到目標機器的d:/prj下面,就可以在本機像平常一樣除錯了。
要注意的事項:
1.要求本機與目標機器上的版本要完全一樣才行。
2.在本機設定遠端除錯路徑時一定要填目標機器上看到的路徑,而不是本機看到的網路路徑
3.除錯開始時,會提示些符號資訊的東東,都確定就行了
4.遠端除錯的設定是全域性設定,跟專案無關。實際上,上面提到本機偵錯程式設定時都沒開啟工程。所以,當不需要遠端除錯時,要從build選單下面的debuger remote connecting的子選單設定回local模式。否則每次都會問你要遠端的資訊噢~~~
發表於 @ 2023年11月24日 13:01:00)
|收藏
VC 6 0除錯篇 遠端除錯
vc開發環境之所以提供遠端除錯的能力,是因為有些情況下單機除錯會讓你崩潰掉。比如,除錯gui程式的wm paint訊息,因為要單步除錯,所以偵錯程式會對介面的重繪產生 heisenberg不確定性原理 當然還有些別的情況也適用,比如程式在測試環境執行的好好的,但是在客戶那行為總是異常,這時候如果可以...
VC 6 0除錯篇 遠端除錯續 DLL篇
基本流程還是一樣的,只不過除錯動態庫的話,除了需要動態庫本身外,還需要呼叫該動態庫的執行程式。這裡假設要除錯的動態庫為testdll.dll,其中匯出乙個函式int add int a,int b 在可執行程式testcsdn.exe中會呼叫testdll中的add函式。除錯步驟如下 1.在編譯完動...
VC 6 0除錯篇 遠端除錯續 DLL篇
聞香止步 店 飾品 木雕系列 檀木 黃楊木 桃木髮簪 樟木壁掛 佛珠 朋友,有空來看看,喜歡的朋友請收藏 基本流程還是一樣的,只不過除錯動態庫的話,除了需要動態庫本身外,還需要呼叫該動態庫的執行程式。這裡假設要除錯的動態庫為testdll.dll,其 中匯出乙個函式int add int a,int...