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

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