呼叫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的功能遠不止這些,包括多程序/多執行緒/訊號/遠端除錯等功能在這裡均沒有提及,有需要的讀者可以參考其它資訊。
pasted from: <
>
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 檢視斷...