gdb的簡單使用

2021-06-26 05:39:57 字數 2383 閱讀 7913

gdb簡介

gdb的簡單使用:gdb execfile(可執行檔案)

不過在要用gdb之前,編譯時要加上 -g 選項

1、l(list命令的簡寫):

例如: 「l 12」,將會顯示第12行(以及它前後若干行)

「l main」將顯示main函式開頭附近十行

不加引數,直接「l」會顯示下10行;

「list -」將顯示上10行

另外,所有的操作都可以用「help list」命令檢視

2、r(run命令的簡寫):

run命令會一直執行到程式結束。使用b(break命令設定斷點)就可以停下了

例如:b main命令將在main函式的開始出設定斷點,然後用r命令執行時會在main

起始處停下來。如果想繼續執行,可以使用c(continue命令),而不是r命令.

和list命令相似,b命令也可以指定行號,例如:"b 9"就是設定第九行為乙個斷點。

那要刪除斷點怎麼辦?用clear(cl)命令,clear命令和b命令使用相同。

3、n(next)和s(step):

二者的作用是執行當前行,區別在於如果當前行是呼叫函式,則next是把整個函式

體的所有語句都一次性執行完,而step則是進入函式內部執行語句。

另外在gdb中,直接按enter鍵,等價於再次執行上一次指令,所以需要連續執行

next或step語句時,只要一開始輸入一次,之後狂按enter即可。還有就是,用

終端的同學應該清楚,在terminal中按上下鍵是可以檢視歷史記錄,用gdb的時候

同樣可以使用上下鍵來檢視歷史記錄。

4、u(until):

顧名思義,until指令就是指執行到指定的位置,例如:「u 9」就是執行到第九行

「u add」就是執行到add函式的開頭位置。

5、p(print):

你想,沒事你停下來要幹嘛?當然是列印一些函式值之類的啦,所以需要print指令。

同樣的還有i(info)指令,例如:info locals(簡寫為i lo)顯示所有區域性變數

還有display(簡寫為disp)命令,例如:display i+1就可以讀取i+1的值了。

gdb常見命令**:

—————————————————————————————————

簡寫          全稱                                          備註

—————————————————————————————————

l     --      list           顯示指定行號或者指定函式附近的源**

—————————————————————————————————

b    --     break       在指定行號或指定函式開頭設定斷點。如:b main

—————————————————————————————————

r     --      run          執行程式,直到程式結束或遇到斷點而停下

—————————————————————————————————

c    --    continue    在程式中斷後繼續執行程式,直到遇到斷點或結束程式

注意,在開始執行前只能用r,不能用c

—————————————————————————————————

n    --     next          執行一條語句,如果有函式,則呼叫函式(作為整體)

—————————————————————————————————

s    --     step          執行一條語句,如果有函式,則進入函式內部

—————————————————————————————————

u    --     until          執行到指定行號或指定函式的開頭

—————————————————————————————————

p    --     print          顯示變數或表示式的值

—————————————————————————————————

disp   --    display      把乙個表示式設定為display,當程式每次停下來時

都顯示其值

—————————————————————————————————

cl   --     clear         取消斷點,和b的格式相同。如果該位置有多個斷點,

則會同時取消所有斷點

—————————————————————————————————

i   --     info          顯示各種資訊,如:i b顯示所有斷點,i disp顯示

display,而i lo顯示所有區域性變數

—————————————————————————————————

gdb的簡單使用

1.檔案清單 list 簡寫l list line 列出line行後面的10行 list 列出當前行後面的10行 list 列出當前行前面的10行 list function name 列出函式名為function name的10行 2.執行程式 run 簡寫r run 後面可加引數 set arg...

g 和gdb簡單使用

在編譯之前我們需要在系統裡安裝g gcc,它們就是linux下的c c的編譯器。如下 sudo apt get install build essential include using namespace std int main void hello display 在g 中有乙個引數 c可以只...

Linux 下GDB的使用之簡單入門

linux 下程式崩潰。先要生成core檔案方可除錯 這裡test為被除錯程式 1.檢視core檔案 相當於windows下的dump 大小,如果為0,則不會生成core檔案 ulimit c 檢視core檔案大小 ulimit c filesize 設定大小為filesize ulimit c u...