Linux下gdb的使用

2022-05-31 14:33:08 字數 2335 閱讀 1516

一、編譯檔案生成可執行檔案

如果想用偵錯程式執行乙個可執行檔案, 在用gcc編譯時必須加上-g選項。

加上-g選項以後,gcc在編譯是會做以下額外的操作:

1. 建立符號表,符號表包含了程式中使用的變數名稱的列表。

2. 關閉所有的優化機制,以便程式執行過程中嚴格按照原來的c**進行。

二、ulimit -c unlimited 允許生成core檔案

三、gdb a.out 或者先輸入gdb 然後 file a.out  進入除錯

四、r/run 開始執行程式

五、l /list  顯示多行源**

1. list  從上次的位置開始顯示,預設情況下,一次顯示10行。

2. list n顯示以第n行為中心的10行**

3. list functionname顯示以functionname的函式為中心的10行**

4. list - 顯示剛才列印過的源**之前的**

5.set listsize n 設定顯示的行數

6.show listsize顯示當前設定顯示的行數

六、b/break  設定斷點 程式執行到斷點時會停下

1. break location

:在location位置設定斷點,改位置可以為某一行,某函式名或者其它結構的位址。

2. info breakpoint:檢視斷點資訊。

3. delete breakpoints 斷點號:刪除斷點。

七、display/disp  跟蹤檢視某個變數,每次停下都顯示它的值

也可以使用disable,enable,delete,info命令修改及檢視其狀態,用法與對斷點的一樣

八、s/step 執行下一條語句,如果該語句為函式呼叫,則進入函式執行其中的第一條語句

九、n/next執行下一條語句,如果該語句為函式呼叫,不會進入函式內部執行(即不會一步步地除錯函式內部語句)

十、p/print 列印內部變數值

十一、c/continue 繼續執行程式,直到遇到下乙個斷點

十二、set var name=value

在程式執行中動態改變變數的值

十三、watch 監視變數值的變化

十四、

backtrace/bt 檢視堆疊使用資訊

十五、f/frame 檢視某一幀的堆疊資訊

f  n 檢視第n條堆疊資訊。

十六、k/kill 終止正在除錯的程式

十七:q/quit 退出gdb環境

linux下gdb的除錯使用

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

linux下GDB的使用方法

gdb是gnu開源組織發布的乙個強大的linux下的程式除錯工具。一般來說,gdb主要幫助你完成下面四個方面的功能 1 啟動你的程式,可以按照你的自定義的要求隨心所欲的執行程式。2 可讓被除錯的程式在你所指定的調置的斷點處停住。斷點可以是條件表示式 3 當程式被停住時,可以檢查此時你的程式中所發生的...

linux下如何使用gdb除錯

gdb是linux下非常好用的乙個除錯工具,雖然它是命令列模式的除錯工具,但是它的功能強大到你無法想象,這裡簡單介紹下gdb下常用的命令。首先編譯生成可執行檔案 這裡的test.c是乙個簡單的求前n項和的程式 gcc g test.c o test g選項告訴gcc在編譯程式時加入除錯資訊 接下來可...