天天看點

【Linux】gcc 編譯器 及gdb 調試器

Linux 下三種工具的預設方式

vim 編輯器的預設打開模式:指令模式

gcc/g++ 編譯器的預設連結方式:動态連結

gdb 調試器的預設版本:release 版本

在前面的部落格中,我講到了vim編輯器 的使用,這裡我主要講一下gcc 編譯器和 gdb 編輯器

1. gcc編譯過程

  1. 預處理(主要進行宏替換)
  2. 編譯(用于生成彙編)
  3. 彙編(生成機器碼)
  4. 連結(生成可執行檔案)
    【Linux】gcc 編譯器 及gdb 調試器

2. gcc 編譯器的使用方法

-0 後面隻能跟可執行程式(生成的對象)

gcc -0 main main.c 或者 gcc main.c -o main

無論上面哪種寫法,main 都是可執行程式的檔案名

搭配操作:

-static : 對生成的檔案采用靜态連結

ldd : 輸出目前程式所依賴的庫

file + 可執行檔案 :檢視目前檔案的狀态

在後面我們會用 make/Makefile 實作自動編譯過程。下篇部落格中講。

3. gdb 調試器版本介紹

debug 版本:開發版,添加了調試資訊,是以允許調試

release 版本:釋出版,不可以被調試

4. gdb 調試器的使用

加 -g 選項可将程式修改為可調試的debug 版本

gdb 檔案名 可進行調試程式

gcc main.c -o main.debug -g

gdb main.debug

搭配操作:

r/run : 運作程式

n/next : 單條執行

s/step : 進入函數調用

b/break : 設定斷點 ( -n 行号為n -函數名)

c/continue :直接跳至下個斷點 / 結束

info b : 檢視斷點資訊

delete b : 删除斷點 (-n 序号為n)

print§ :列印變量p的值

display p :跟蹤檢視變量p的變化

undisplay n:取消跟蹤第n個變量

until n :跳至第n行

finish : 函數直接運作結束

多多支援部落客哈~