使用gdb除錯的前提條件
1.必須在連線之前,即編譯的階段加入-g指令
2.如果想要在執行出錯後,排查出錯原因,需要啟用core功能
->linux命令列
->ulimit -a 找到core limit相關,
->使用ulimit -c unlimited可直接設定儲存容量無限制
進入gdb除錯模式的方法
1.gdb [filename]
2.gdb [filename] core
gdb常用的除錯引數
//設定相關
set args [args1] [args2] …給檔案設定傳入的引數
show args 檢視設定好的引數
//執行除錯相關
run / r 開始執行程式至斷點
step / s 單步除錯,進入函式呼叫
next /n 單步除錯,不進入函式呼叫
continue 進行執行到下乙個斷點
finish 跳出當前函式
start / st 開始執行程式,在main函式的第一條語句前停下
kill [filename] 終止正在除錯的程式
//斷點設定相關
break / b [lineno] / [functionname] 在指定行號或函式名處加上斷點
info b 檢視已設定的斷點資訊
ignore [breakno] [cnt] 忽略斷點cnt次
delete [breakno] 刪除指定編號的斷點
disable [breakno] 停用指定斷點
enable [breakno] 啟用指定斷點
tbreak
watch [var]為表示式(變數)expr設定乙個觀察點。一旦表示式值有變化時,馬上停住程式
//檢視監視相關
list / l [lineno] 顯示10行**
display / disp [var] 一直監控變數的值
print / p [var] 顯示指定變數的值
backtrace / bt 檢視堆疊呼叫情況
frame 檢視棧幀
x/[num]xb address 檢視指定位址的記憶體使用情況,x是指令,/後面接顯示的數量和顯示的格式,x代表16進製制,b代表byte,前面的num表示顯示多少個,address表示起始位址
Linux複習之gdb除錯基本指令
初學者在編輯程式時,往往會出現很多的語法錯誤,這些錯誤在編譯階段就會暴露,所以很容易被排除,但是有些錯誤可能出現在程式執行階段,需要深入的測試 除錯和修改。這就使得在一些大型專案裡,程式的除錯變的十分困難,這個時候就需要乙個高效的除錯工具,gdb除錯工具就是當前使用最廣泛的的除錯工具。gdb除錯基本...
GDB常用指令
一 基本指令 程式設計設定 1.需要加 g,不能有 s,如g g main.cpp 常用指令 gdb gdb e 或者輸入gdb gdb file e 進入gdb,執行e檔案 gdb info breakpoints 可使用info檢視斷點相關的資訊 gdb break 7 以行號設定斷點 gdb ...
gdb 常用指令
除錯程式需要傳入引數 在執行前 set args 需要傳入的引數 檢視 list 從main函式開始檢視 show listsize 顯示當前 l 檢視 會顯示多少行 set listsize 20 設定 l 顯示為20行 list 行號 顯示該行號的上下文 list 函式名 檢視函式 list 檔...