在進入指定函數(shù)時停住。C++中可以使用class::function或function(type,type)格式來指">
gdb單步調(diào)試(中)

gdb單步調(diào)試(中)

ID:37724062

大小:37.50 KB

頁數(shù):11頁

時間:2019-05-29

gdb單步調(diào)試(中)_第1頁
gdb單步調(diào)試(中)_第2頁
gdb單步調(diào)試(中)_第3頁
gdb單步調(diào)試(中)_第4頁
gdb單步調(diào)試(中)_第5頁
資源描述:

《gdb單步調(diào)試(中)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、一、設(shè)置斷點(BreakPoint)我們用break命令來設(shè)置斷點。正面有幾點設(shè)置斷點的方法:break在進入指定函數(shù)時停住。C++中可以使用class::function或function(type,type)格式來指定函數(shù)名。break在指定行號停住。break+offsetbreak-offset在當前行號的前面或后面的offset行停住。offiset為自然數(shù)。breakfilename:linenum在源文件filename的linenum行處停住。break

2、filename:function在源文件filename的function函數(shù)的入口處停住。break*address在程序運行的內(nèi)存地址處停住。breakbreak命令沒有參數(shù)時,表示在下一條指令處停住。break...if...可以是上述的參數(shù),condition表示條件,在條件成立時停住。比如在循環(huán)境體中,可以設(shè)置breakifi=100,表示當i為100時停住程序。查看斷點時,可使用info命令,如下所示:(注:n表示斷點號)infobreakpoints[n]infobre

3、ak[n]二、設(shè)置觀察點(WatchPoint)觀察點一般來觀察某個表達式(變量也是一種表達式)的值是否有變化了,如果有變化,馬上停住程序。我們有下面的幾種方法來設(shè)置觀察點:watch為表達式(變量)expr設(shè)置一個觀察點。一量表達式值有變化時,馬上停住程序。rwatch當表達式(變量)expr被讀時,停住程序。awatch當表達式(變量)的值被讀或被寫時,停住程序。infowatchpoints列出當前所設(shè)置了的所有觀察點。三、設(shè)置捕捉點(CatchPoint)你可設(shè)置

4、捕捉點來補捉程序運行時的一些事件。如:載入共享庫(動態(tài)鏈接庫)或是C++的異常。設(shè)置捕捉點的格式為:catch當event發(fā)生時,停住程序。event可以是下面的內(nèi)容:1、throw一個C++拋出的異常。(throw為關(guān)鍵字)2、catch一個C++捕捉到的異常。(catch為關(guān)鍵字)3、exec調(diào)用系統(tǒng)調(diào)用exec時。(exec為關(guān)鍵字,目前此功能只在HP-UX下有用)4、fork調(diào)用系統(tǒng)調(diào)用fork時。(fork為關(guān)鍵字,目前此功能只在HP-UX下有用)5、vfork調(diào)用系統(tǒng)調(diào)用vfork

5、時。(vfork為關(guān)鍵字,目前此功能只在HP-UX下有用)6、load或load載入共享庫(動態(tài)鏈接庫)時。(load為關(guān)鍵字,目前此功能只在HP-UX下有用)7、unload或unload卸載共享庫(動態(tài)鏈接庫)時。(unload為關(guān)鍵字,目前此功能只在HP-UX下有用)tcatch只設(shè)置一次捕捉點,當程序停住以后,應(yīng)點被自動刪除。四、維護停止點上面說了如何設(shè)置程序的停止點,GDB中的停止點也就是上述的三類。在GDB中,如果你覺得已定義好的停止點沒有用了,

6、你可以使用delete、clear、disable、enable這幾個命令來進行維護。clear清除所有的已定義的停止點。clearclear清除所有設(shè)置在函數(shù)上的停止點。clearclear清除所有設(shè)置在指定行上的停止點。delete[breakpoints][range...]刪除指定的斷點,breakpoints為斷點號。如果不指定斷點號,則表示刪除所有的斷點。range表示斷點號的范圍(如

7、:3-7)。其簡寫命令為d。比刪除更好的一種方法是disable停止點,disable了的停止點,GDB不會刪除,當你還需要時,enable即可,就好像回收站一樣。disable[breakpoints][range...]disable所指定的停止點,breakpoints為停止點號。如果什么都不指定,表示disable所有的停止點。簡寫命令是dis.enable[breakpoints][range...]enable所指定的停止點,breakpoints為停止點號。enable[breakpoints

8、]oncerange...enable所指定的停止點一次,當程序停止后,該停止點馬上被GDB自動disable。enable[breakpoints]deleterange...enable所指定的停止點一次,當程序停止后,該停止點馬上被GDB自動刪除。五、停止條件維護前面在說到設(shè)置斷點時,我們提到過可以設(shè)置一個條件,當條件成立時,程序自動停止,這是一個非常強大的功能,這里,我想專門說說這個條件的相關(guān)維護命令。一

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。