gcc編譯與gdb除錯簡要步驟

2021-09-08 19:09:45 字數 1022 閱讀 3298

gcc編譯過程主要的4個階段:

l 預處理階段,完成巨集定義和include檔案展開等工作;(.i)

l 根據編譯引數進行不同程度的優化,編譯成彙編**(.s.s)

l 用彙編器把彙編**進一步生成目標**(.o)

l 用聯結器把生成的目標**和系統或使用者提供的庫連線起來,生成可執行檔案

格式:l gcc -e test.c//預處理階段

l gcc -s test.c//編譯階段

l gcc -c test.c//彙編階段

l gcc -o test test.c//鏈結階段

gdb的功能:

l 設定斷點

l 監視程式變數的值

l 程式的單步執行

l 顯示、修改變數的值

l 顯示、修改暫存器

l 檢視程式的堆疊情況

l 遠端除錯

gdb除錯過程:

1、程式經過預處理後,即進入編譯階段,進入編譯階段,首先宣告編譯:

2、格式:gdb -o test test.c -g

3、進入編譯:gdb test

4、顯示需要編譯除錯的源程式:l(list)//list filename

5、設定斷點:b(break)行號

6、檢視設定的斷點:info b

7、執行除錯程式:run

9、單步執行的話使用:n(next)/s(step into)跳到函式體 //區別在與:next執行函式體,而step不執行函式體

10、除錯過程中檢視某個變數的變化:print i (每次都要手動設定)//display i(設定一次一直尾隨,直到用「undisplay 變數標號」 停止)

11、退出當前的除錯使用finish 跳出函式

12、清楚斷點 clear 行號

13、delete 斷點資訊序號// 刪除所有斷點或設定的要刪除的斷點

14、退出除錯 q

15、b  num  if  i==20 設定斷點的觸發條件

16、condition num i==50 改變斷點的觸發條件

使用gcc編譯gdb除錯

在linux系統中,預設是沒有安裝gcc編譯器的,可以通過命令 rpm q grep gcc 來檢視。安裝命令為 yum y install gcc 安裝後,編寫乙個.c結尾的檔案。gcc test.c 就會預設輸出乙個a.out的輸出檔案,這個輸出檔案就是可執行檔案。如果加上 o選項,則可以自定目...

gdb除錯步驟

gdb除錯 gdb除錯過程 1 程式經過預處理後,即進入編譯階段,進入編譯階段,首先宣告編譯 2 格式 gdb o test test.c g 3 進入編譯 gdb test 4 顯示需要編譯除錯的源程式 l list list filename 5 設定斷點 b break 行號 6 檢視設定的斷...

GCC編譯器和GDB偵錯程式

gcc gnu compiler collection 是目前linux下最常用的c語言編譯器,它是gnu專案中符合ansi c標準的編譯系統,可以在多種硬體平台上編譯出可執行程式的超級編譯器,執行效率與一般的編譯器相比平均效率要高20 30 在終端中輸入下列命令 gcc options filen...