GDB中的命令固然很多,,但我們只需掌握其中十個左右的命令,,就大致可以完成日常的基本的程序調(diào)試工作。
命令 解釋 示例
file <文件名> 加載被調(diào)試的可執(zhí)行程序文件,。 因為一般都在被調(diào)試程序所在目錄下執(zhí)行GDB,,因而文本名不需要帶路徑。 (gdb) file gdb-sample r Run的簡寫,,運行被調(diào)試的程序,。 如果此前沒有下過斷點,則執(zhí)行完整個程序,;如果有斷點,,則程序暫停在第一個可用斷點處,。 (gdb) r c Continue的簡寫,繼續(xù)執(zhí)行被調(diào)試程序,,直至下一個斷點或程序結束,。 (gdb) c b <行號> b <函數(shù)名稱> b *<函數(shù)名稱> b *<代碼地址> d [編號] b: Breakpoint的簡寫,設置斷點,。兩可以使用“行號”“函數(shù)名稱”“執(zhí)行地址”等方式指定斷點位置,。 其中在函數(shù)名稱前面加“*”符號表示將斷點設置在“由編譯器生成的prolog代碼處”。如果不了解匯編,,可以不予理會此用法,。 d: Delete breakpoint的簡寫,刪除指定編號的某個斷點,,或刪除所有斷點,。斷點編號從1開始遞增。 (gdb) b 8 (gdb) b main (gdb) b *main (gdb) b *0x804835c (gdb) d s, n s: 執(zhí)行一行源程序代碼,,如果此行代碼中有函數(shù)調(diào)用,,則進入該函數(shù); n: 執(zhí)行一行源程序代碼,,此行代碼中的函數(shù)調(diào)用也一并執(zhí)行,。 s 相當于其它調(diào)試器中的“Step Into (單步跟蹤進入)”; n 相當于其它調(diào)試器中的“Step Over (單步跟蹤)”,。 這兩個命令必須在有源代碼調(diào)試信息的情況下才可以使用(GCC編譯時使用“-g”參數(shù)),。
(gdb) s (gdb) n si, ni si命令類似于s命令,ni命令類似于n命令,。所不同的是,,這兩個命令(si/ni)所針對的是匯編指令,而s/n針對的是源代碼,。 (gdb) si (gdb) ni p <變量名稱> Print的簡寫,,顯示指定變量(臨時變量或全局變量)的值。 (gdb) p i (gdb) p nGlobalVar display ... undisplay <編號> display,,設置程序中斷后欲顯示的數(shù)據(jù)及其格式,。 例如,如果希望每次程序中斷后可以看到即將被執(zhí)行的下一條匯編指令,,可以使用命令 “display /i $pc” 其中 $pc 代表當前匯編指令,,/i 表示以十六進行顯示。當需要關心匯編代碼時,,此命令相當有用,。 undispaly,取消先前的display設置,編號從1開始遞增,。 (gdb) display /i $pc (gdb) undisplay 1 i Info的簡寫,,用于顯示各類信息,詳情請查閱“help i”,。 (gdb) i r q Quit的簡寫,,退出GDB調(diào)試環(huán)境。 (gdb) q help [命令名稱] GDB幫助命令,,提供對GDB名種命令的解釋說明,。 如果指定了“命令名稱”參數(shù),則顯示該命令的詳細說明,;如果沒有指定參數(shù),,則分類顯示所有GDB命令,供用戶進一步瀏覽和查詢,。 (gdb) help display 本文來自CSDN博客,,轉載請標明出處:http://blog.csdn.net/bobocheng1231/archive/2008/06/05/2513741.aspx |
|