Posted on 2008-07-28 15:20
小明 閱讀(7523)
評論(3) 編輯 收藏 引用 所屬分類:
Tools 、
Debug
1 什么是遠程調試技術
顧名思義,就是要調試的程序和調試器本身并不在一臺機器上。由于虛擬機技術的盛行,在虛擬機里面運行待調試的程序,而在外面運行調試器,也是一種比較流行的做法。

2 為什么使用遠程調試
遠程調試有如下好處:
a. 能讓產品運行在一個比較干凈的環境。有的時候如果產品安裝在一個裝好集成環境的機器上,某些bug并不能顯示出來。
b. 易于部署調試環境。很多產品都非常復雜,比如很多都以service方式運行或者要load很復雜的resource,想在調試器里面直接按F5運行,越來越難。
c. 對于游戲等全屏方式運行的程序,尤其有用。以前我對調試directx程序非常頭疼。
3 怎樣使用遠程調試
使用vs2005進行遠程調試,詳細的介紹參考:http://support.microsoft.com/kb/910448
簡單的來說,
1)在被調試的機器上面運行Msvsmon.exe
2)在調試機器上面運行vs2005,并attach到遠程機器的某個進程
4 注意事項
a. 設置好正確的權限
被調試機器和調試機器需要互相信任的權限(two-way)。如果兩臺機器在同一個workgroup,讓兩臺機器擁有一個相同的賬號和密碼,然后以這個賬號運行。如果兩臺機器在一個域里面,比較簡單,Msvsmon可以設置權限。如果一臺機器在domain里面,另外一臺不在,同樣是讓兩臺機器擁有一個相同的賬號和密碼,然后以這個賬號運行。
對于Windows XP要特別注意一下,設置匿名的訪問權限才可以work ,
http://support.microsoft.com/kb/908099 b.設置好symbol
什么,你不知道什么是symbol?簡單的來說,symbol file(*.pdb) is for source-level debugging. VS2005就是靠它來調試exe的。默認情況下debug版本生成的,而release版本不生成pdb.設置好 [Project proerties]-[C/C++]-[Debug Information Format]-Program Database就可以了。
為了減少symbol方面的麻煩,最簡單的做法是讓被調試機器上的binary版本和本地compile出來保持一致。