GDB 常用命令

2021-09-07 15:01:31 字數 2221 閱讀 8663

執行:

(gdb)  r

命令列帶參:

(gdb)  r  "引數1"  "引數2"

(gdb)  set args "引數1"  "引數2"    //set  args  10 20 40

檢視/設定 執行環境:

(gdb)  show args     //檢視命令列引數

(gdb)  show paths    //檢視執行路徑  

(gdb)  show env     //檢視環境變數

(gdb)  set evn  lines=25  //設定環境變數  

設定斷點 break:

(gdb)  b  function

(gdb)  b  linenum

(gdb)  b  + offset

(gdb)  b  - offset

(gdb)  b  filename:function

(gdb)  b  filename:linenum

(gdb)  b  *address

(gdb)  b  ***  if //b 18 if i==50

設定觀察點:

(gdb)  watch  expr    //表示式expr變化則停止

(gdb)  rwatch  expr    //表示式expr被讀時停止

(gdb)  awatch  expr    //表示式expr被讀寫時停止

檢視斷點/觀察點 info:

(gdb)  i

(gdb)  i  locals    //顯示當前函式所有區域性變數的值

(gdb)  i b 3    //檢視第三個斷點

(gdb)  i watchpoints

(gdb)  i watchpoints n

設定自動顯示:

(gdb)  display i

(gdb)  display  $pc    //顯示當前記憶體位址

刪除自動顯示:

(gdb)  delete display dnum

(gdb)  disable display dnum

(gdb)  enable display dnum

停止維護點:

(gdb)  delete

(gdb)  clear      

(gdb)  disable

(gdb)  enable

例子:clear          //清楚所有停止點

clear  function    //清除該函式內部的所有停止點

clear  filename:function

clear  linenum    //清除某行上的停止點

delete  n

delete  n1-n2

disable  n

enable  n

單步除錯next/step:

(gdb)  n    //逐行執行語句,不進入函式體內部

(gdb)  s    //逐行執行語句,進入函式內部 

檢視源程式list:

(gdb)  list  first,last

(gdb)  list  linenum

檢視執行資料print:

print  /n    //顯示變數n的值

print  /::n    //顯示全域性變數n的值

print  /array  //顯示資料的值

print  /*array@length    //顯示動態分配陣列的值

/:為顯示格式,其值為:x/d/u/o/t/a/c/f

檢視變數型別:

(gdb)  whatis  var        //獲取變數的型別

(gdb)  ptype  var/structname   //獲取結構體定義 

(gdb)  where            //函式的呼叫關係鏈

檢視記憶體:

(gdb)  x  addr    //檢視記憶體

(info)  line  n    //顯示第n行的記憶體位址

改變程式執行流程:

(gdb)  print i=10    //賦值

(gdb)  print function  //執行一次函式

(gdb)  set var i=15

(gdb)  jump  linenum

(gdb)  jump  address

(gdb)  call  function    //強制呼叫函式

gdb常用命令

gnu的偵錯程式稱為gdb,是乙個互動式的程式,工作在字元模式。其常用命令如下 break num 在指定的行上設定斷點 break 1 bt 顯示函式的呼叫順序 clear 刪除斷點 clear test.c 10 display expr 每次程式停止後顯示表示式的值 printf expr顯示...

GDB常用命令

1 執行 run2 單步執行 step next finish 一直執行到函式返回 until 執行到某一行 3 斷點 break args break 12 break 10 hbreak args 硬體輔助斷點 thbreak args rbreak args info breakpoints ...

gdb 常用命令

呼叫gdb編譯需要在cc後面加 g引數再加 o root redhat home gdb 除錯檔案 啟動gdb gdb l 字母l 從第一行開始列出原始碼 gdb break n 在第n行處設定斷點 gdb break func 在函式func 的入口處設定斷點 gdb info break 檢視斷...