gdb命令詳解

2021-08-07 08:15:52 字數 2057 閱讀 7562

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...