Linux 下GDB的使用之簡單入門

2021-08-03 00:23:38 字數 1055 閱讀 2733

linux 下程式崩潰。先要生成core檔案方可除錯(這裡test為被除錯程式)

1.檢視core檔案(相當於windows下的dump)大小,如果為0,則不會生成core檔案

ulimit -c 檢視core檔案大小

ulimit -c filesize 設定大小為filesize 

ulimit -c unlimited 設定core大小為無限制

2.啟動被除錯程式

進入到被除錯程式目錄,輸入gdb ./test  回車

如果被除錯程式有引數需設定,則 set args ***x 回車

也可 r arg1 arg2

3.設定(刪除,使能,失能)斷點

如果是c++程式,則 

b classname::fun 即給類名為classname的成員函式fun下斷點

也可 b ***.cpp:linenum  即給***.cpp的linenum 行下斷點

下好斷點後,可檢視斷點

info b 或者 info break

刪除斷點

delete number(斷點編號) 或者delete all

enable b number (使能斷點)

disable b number (失能斷點)

4.執行程式 r

5.單步執行(步過,不進入函式內部) 

n 6.單步步入(步入,進入函式內部)

s 7.執行到下個斷點

c (contune)

8. 檢視變數

p var(變數名)或者p addr (記憶體位址)

9.列出源程式

list 無引數

顯示上次內容之前或之後的10行內容

list 1個引數,list

顯示引數行 line-number之前和之後的10行內容

list 2個引數,list

說明:line1為顯示的起始行,line2為結束行

再次回車後,即執行list命令,顯示內容後面的10行命令

最後:

quit 退出gdb

linux下安裝gdb及簡單使用

unix及unix like下的除錯工具 傳送門 wget gdb 8.2.1.tar.gz tar xzvf gdb 8.2.1.tar.gz cd gdb 8.2 configure prefix usr local gdb make make install gdb v 如果正常就說明就安裝好...

Linux下gdb的使用

一 編譯檔案生成可執行檔案 如果想用偵錯程式執行乙個可執行檔案,在用gcc編譯時必須加上 g選項。加上 g選項以後,gcc在編譯是會做以下額外的操作 1.建立符號表,符號表包含了程式中使用的變數名稱的列表。2.關閉所有的優化機制,以便程式執行過程中嚴格按照原來的c 進行。二 ulimit c unl...

linux下gdb的除錯使用

1.gdb除錯的物件是可執行檔案,而不是程式的源 因此在使用gcc編譯器時 需加 g選項。告訴gcc編譯器加入除錯資訊。例如 gcc g test.c o test 2.除錯gdb的格式是 例如 gdb test 3.在啟動gdb後,會顯示一段版權說明,如果要不顯示 加入 q即可 例如 gdb q ...