gdb的基本指令

2021-10-09 04:16:33 字數 1155 閱讀 5487

使用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 檔...