1.列出檔案清單
(gdb) listline1,line2
2.執行程式
(gdb) run
3.顯示資料
(gdb) print p (p為變數名)
(gdb) whatis p //顯示命令型別
(gdb) print function_name() //對程式中函式呼叫
(gdb) print
4.打斷點
break可簡寫為b
(gdb) b line_number
(gdb) b function_name
(gdb) b routine_name
(gdb) b filename:line_number
(gdb) b filename:function_name
(gdb) b line-or-function
if expr //給出條件設定斷點
5.管理斷點
1)顯示斷點資訊
(gdb)info break
2)刪除指定斷點
(gdb) delete
breakpoint
1//1為斷點編號,若預設則刪除所有斷點
3)禁止使用斷點
(gdb)disable breakpoint
1
4)允許使用斷點
(gdb)enable breakpoint
1
5)清楚某一**中所有斷點
(gdb) clean number
6.變數的檢查和賦值
(gdb)whatis: 識別陣列或變數的型別
(gdb)ptype: 比whatis的功能更強,他可以提供乙個結構的定義
(gdb)set
variable: 將值賦予變數
(gdb)print: 除了顯示乙個變數的值外,還可以用來賦值
7.單步執行
(gdb)next 不進入的單步執行
(gdb)step 進入的單步執行
(gdb)finish 如果已經進入了某函式,而想退出該函式返回到它的呼叫函式中,可使用命令finish
8.函式的呼叫
(gdb)call name 呼叫和執行乙個函式
9. unix介面
(gdb)shell 命令可啟動unix外殼,ctrl-d退出外殼,返回到 gdb.
10.gdb多執行緒
(gdb)info threads //顯示當前可除錯的所有執行緒,每個執行緒會有乙個gdb為其分配的id,後面操作執行緒的時候會用到這個id。 前面有*的是當前除錯的執行緒。
(gdb) thread id
//切換當前除錯的執行緒為指定id的執行緒。 (gdb)break thread_test.c:123 thread all
//在所有執行緒中相應的行上設定斷點
//讓乙個或者多個執行緒執行gdb命令command。
//讓所有被除錯執行緒執行gdb命令command。
(gdb)set scheduler-locking off|on|step
//off 不鎖定任何執行緒,也就是所有執行緒都執行,這是預設值。 on 只有當前被除錯程式會執行。
step 在單步的時候,除了next過乙個函式的情況(熟悉情況的人可能知道,這其實是乙個設定斷點然後continue的行為)以外,只有當前執行緒會執行。
《GDB命令詳解》
gdb 命令詳細解釋 linux中包含有乙個很有用的除錯工具 gdb gnu debuger 它可以用來除錯c和c 程式,功能不亞於windows下的許多圖形介面的除錯工具。和所有常用的除錯工具一樣,gdb提供了以下功能 監視程式中變數的值 在程式中設定斷點 程式的單步執行 在使用gdb前,必須先載...
gdb和arm linux gdb命令詳解
文章最後又gdb的安裝方法!在pc機下除錯pc機程式 gcc g hello.c o hello o specified specified exec name g debugging message gdb hello debugging program break orr b params se...
詳解GCC與GDB 常用的命令
linux下程式設計,少不了和gcc,gdb打交道,現在總結下常用命令,掌握這些足夠用了。gcc常用的選項 o 指定生成的輸出檔案,e 僅執行編譯預處理 gcc的 e選項,可以讓編譯器在預處理後停止,並輸出預處理結果。s 將c 轉換為彙編 gcc的 s選項,表示在程式編譯期間,在生成彙編 後停止 w...