使用GDB調(diào)試Linux應(yīng)用程序_第1頁
使用GDB調(diào)試Linux應(yīng)用程序_第2頁
使用GDB調(diào)試Linux應(yīng)用程序_第3頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第第頁使用GDB調(diào)試Linux應(yīng)用程序

本篇講解使用GDB調(diào)試(Linux)應(yīng)用程序,以下以.FindtheGDBmanualandotherdocumentationresourcesonlineat:斷點

設(shè)置斷點

文件行號斷點:breakhellowrld.c:9函數(shù)斷點:breakmain條件斷點:breakhelloworld.c:17ifc==10臨時斷點,假設(shè)某處的斷點只想生效一次,那么可以設(shè)置臨時斷點,這樣斷點后面就不復(fù)存在了:tbreakhelleworld.c:9禁用或啟動斷點:disable#禁用所有斷點disablebnum#禁用標(biāo)號為bnum的斷點enable#啟用所有斷點enablebnum#啟用標(biāo)號為bnum的斷點enabledeletebnum#啟動標(biāo)號為bnum的斷點,并且在此之后刪除該斷點斷點清除:clear#刪除當(dāng)前行所有breakpointsclearfunction#刪除函數(shù)名為function處的斷點clearfilename:function#刪除文件filename中函數(shù)function處的斷點clearlineNum#刪除行號為lineNum處的斷點clearf:lename:lineNum#刪除文件filename中行號為lineNum處的斷點delete#刪除所有breakpoints,watchpoints和catchpointsdeletebnum#刪除斷點號為bnum的斷點變量查看

變量查看:最常見的使用便是使用print(可簡寫為p)打印變量內(nèi)容。

以上述程序為例:

gdbhelloworldbreakhelloworld.c:17ifi==0(gdb)runStartingprogram:/home/book/helloworldhelloworld.Breakpoint2,main(argc=1,argv=0x7fffffff(dc)a8)athelloworld.c:1717result+=i;(gdb)printi查看內(nèi)存:examine(簡寫為x)可以用來查看內(nèi)存地址中的值。語法如下:

x/[n][f][u](ad)dr其中:

單元類型常見有如下:

示例:

(gdb)x/4bstr0x4006c8:01001000011001010110110001101100可以看到,變量str的四個字節(jié)都以二進制的方式打印出來了。

b字節(jié)h半字,即雙字節(jié)w字,即四字節(jié)g八字節(jié)n表示要顯示的內(nèi)存單元數(shù),默認值為1f表示要打印的格式,前面已經(jīng)提到了格式控制字符u要打印的單元長度addr內(nèi)存地址查看(寄存器)內(nèi)容:inforegiste(rs)

ra0x3ff7ef22820x3ff7ef2282sp0x3ffffffaa00x3ffffffaa0gp0x2aaaa(ac)8000x2aaaaac800tp0x3ff7fdd2500x3ff7fdd250t00x3ff7ed60b0274742468784t10x3ff7ef21e2274742583778t20x2aaaaac4f0183251944688fp0x3ffffffab00x3ffffffab0s10x00a00x11a10x3ffff(ffc)28274877905960a20x3ffffffc38274877905976a30x00a40x3ffffffad8274877905624a50x00a60x3ff7fd88a8274743527592(內(nèi)容過多未顯示完全)單步調(diào)試

單步執(zhí)行-next:

next命令(可簡寫為n)用于在程序斷住后,繼續(xù)執(zhí)行下一條語句,假設(shè)已經(jīng)啟動調(diào)試,并在第12行停住,如果要繼續(xù)執(zhí)行,則使用n執(zhí)行下一條語句,如果后面跟上數(shù)字num,則表示執(zhí)行該命令num次,就達到繼續(xù)執(zhí)行n行的效果了:gdbhelloworld單步進入-step:

如果我們想跟蹤函數(shù)內(nèi)部

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論