gdb常用命令

2021-06-22 03:12:36 字數 1130 閱讀 1351

呼叫gdb編譯需要在cc後面加 -g引數再加-o;

[root@redhat home]#gdb 除錯檔案:啟動gdb

(gdb) l :(字母l)從第一行開始列出原始碼

(gdb) break n :在第n行處設定斷點

(gdb) break func:在函式func()的入口處設定斷點

(gdb) info break: 檢視斷點資訊

(gdb) r:執行程式

(gdb) n:單步執行

(gdb) c:繼續執行

(gdb) p 變數 :列印變數的值

(gdb) bt:檢視函式堆疊

(gdb) finish:退出函式

(gdb) shell 命令列:執行shell命令列

(gdb) set args 引數:指定執行時的引數

(gdb) show args:檢視設定好的引數

(gdb) show paths:檢視程式執行路徑;

set environment varname [=value] 設定環境變數。如:set env user=hchen;

show environment [varname] 檢視環境變數;

(gdb) cd 相當於shell的cd;

(gdb)pwd :顯示當前所在目錄

(gdb)info program: 來檢視程式的是否在執行,程序號,被暫停的原因。

(gdb)clear 行號n:清除第n行的斷點

(gdb)delete 斷點號n:刪除第n個斷點

(gdb)disable 斷點號n:暫停第n個斷點

(gdb)enable 斷點號n:開啟第n個斷點

(gdb)step:單步除錯如果有函式呼叫,則進入函式;與命令n不同,n是不進入呼叫的函式的

注意 :如果執行list 命令得到類似如下的列印,那是因為在編譯程式時沒有加入 -g 選項:

(gdb) list

1       ../sysdeps/i386/elf/start.s: no such file or directory.

in ../sysdeps/i386/elf/start.s

當然,gdb的功能遠不止這些,包括多程序/多執行緒/訊號/遠端除錯等功能在這裡均沒有提及,有需要的讀者可以參考其它資訊。

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 檢視斷...