程序調(diào)試gdb學(xué)習(xí)查詢

程序調(diào)試gdb學(xué)習(xí)查詢

ID:21720050

大小:65.50 KB

頁數(shù):7頁

時間:2018-10-24

程序調(diào)試gdb學(xué)習(xí)查詢_第1頁
程序調(diào)試gdb學(xué)習(xí)查詢_第2頁
程序調(diào)試gdb學(xué)習(xí)查詢_第3頁
程序調(diào)試gdb學(xué)習(xí)查詢_第4頁
程序調(diào)試gdb學(xué)習(xí)查詢_第5頁
資源描述:

《程序調(diào)試gdb學(xué)習(xí)查詢》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、在GCC中,-g選項可以生成的可執(zhí)行程序中加入調(diào)試信息。調(diào)試信息保存在目標(biāo)文件中,它描述的內(nèi)容包括變量的數(shù)據(jù)類型,函數(shù)的原型聲明,程序符號表,行號,與指令之間的對應(yīng)關(guān)系,等等。-g完整形式是-glevel,其中,level中指定了調(diào)試信息中包括了調(diào)試信息的多少,默認(rèn)的是2,1最少,level=3最多。gdb調(diào)試基本知識a.調(diào)試器指示的是將要執(zhí)行的代碼行b.只有在編譯時擁有調(diào)試符號(-g)的程序才能在調(diào)試時看到源碼c.同一行上有多個斷點(diǎn)時,gdb僅中斷在斷點(diǎn)號最小的那個斷點(diǎn)上d.斷點(diǎn)可以設(shè)置在同一程序的不同文件中e.在任何給定時間,gdb只有一個焦點(diǎn),即當(dāng)前“活動”的文件f.源文件改變

2、后,斷點(diǎn)發(fā)生移動,帶式斷點(diǎn)屬性的行號不變二、GDB基本命令清單查詢在?gdb?提示符處鍵入help,將列出命令的分類,主要的分類有:?*?aliases:命令別名?*?breakpoints:斷點(diǎn)定義;?*?data:數(shù)據(jù)查看;?*?files:指定并查看文件;?*?internals:維護(hù)命令;?*?running:程序執(zhí)行;?*?stack:調(diào)用棧查看;?*?statu:狀態(tài)查看;?*?tracepoints:跟蹤程序執(zhí)行。?鍵入?help?后跟命令的分類名(如help?aliases),可獲得該類命令的詳細(xì)清單。三、GDB基本命令用法1、運(yùn)行退出run(簡寫r):執(zhí)行程序(gd

3、b)run?app?[argv1]?[argv2]?...run命令后可跟隨發(fā)給該程序的任何參數(shù),包括標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出說明符(<和>)和外殼通配符(*、?、[、])在內(nèi)。?如果使用不帶參數(shù)的run命令,gdb就再次使用前一條run命令的參數(shù)。set?args:設(shè)定傳遞給程序的參數(shù)(gdb)set?args?[argv1]?[argv2]?...show?args:查看其缺省參數(shù)的列表?(gdb)show?args?kill(簡寫k):異常終止在gdb?控制下運(yùn)行的程序(gdb)killquit(簡寫q):退出gdb(gdb)quit2、查看信息list(簡寫l):查看源碼(gdb)

4、?list?line_num或l?line_num,line_num為行號。?pirnt(簡寫p):print?var:查看變量var的值。?(gdb)?print?var可以通過添加參數(shù)來設(shè)置輸出格式:/x?按十六進(jìn)制格式顯示變量/d?按十進(jìn)制格式顯示變量/u?按十六進(jìn)制格式顯示無符號整型/o?按八進(jìn)制格式顯示變量/t?按二進(jìn)制格式顯示變量/a?按十六進(jìn)制格式顯示變量/c?按字符格式顯示變量/f?按浮點(diǎn)數(shù)格式顯示變量例如:print?/x?varprint可以顯示被調(diào)試的語言中任何有效的表達(dá)式。表達(dá)式除了包含程序中的變量外,還可以包含以下內(nèi)容:a).對程序中函數(shù)的調(diào)用?(gdb)?

5、print?find_entry(1,0)?b).數(shù)據(jù)結(jié)構(gòu)和其他復(fù)雜對象?(gdb)?print?*table_start?$8={e=reference=’