一、編譯檔案生成可執行檔案
如果想用偵錯程式執行乙個可執行檔案, 在用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在編譯程式時加入除錯資訊 接下來可...