GCC編譯器和GDB偵錯程式

2021-06-29 05:42:25 字數 1232 閱讀 7572

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

在終端中輸入下列命令:

gcc options filename

其中,filename為要操作的*.c檔案,options是編譯器所需要的引數,有以下幾個:

//檔名為test.c,存放在home/sywyg/test中

//生成的可執行檔案為test,存放在同一目錄下

#include

void bubblesort(int *data,int

count)}}

}int main()

; bubblesort(data,9);

for(i=0;i<9;i++)

printf("\n");

return

0;}

執行過程如圖1:

圖1gcc編譯過程

使用gdb除錯程式時,首先gdb需要獲得程式的資訊,因此需在編譯是使用引數-g。編譯命令如下:

gcc -g

-o 可執行檔名(test) 源程式檔名(test.c)

接著可以使用下列命令載入可執行檔案進行除錯:

gdb 可執行檔名(test)
同樣以上面的c程式舉例,上述命令如圖2。

圖2gdb除錯1

此時進入到gdb除錯工具中,gdb有以下常見命令:

1.

break i //表示在第i行設定斷點

2.break

function

() //表示在進入函式function

()處設定斷點

3.break i/function

() if a //表示滿足條件a時執行到i/function

()設定斷點

在斷點後可使用continue命令執行斷點後的程式,直到遇到下一次特殊情況。

gcc編譯器和gdb偵錯程式

將高階語言 c語言 程式編譯成為機器可識別的指令 編譯過程 預處理 去掉注釋,展開所有 編譯 語義 語法糾錯,將 解釋成為彙編 彙編 將彙編 解釋成為機器指令 連線 鏈結 庫以及所有的目標檔案,生成可執行程式 庫檔案 大佬實現一些常用的功能介面,為了防止每次編譯耗費大量時間,因此將這些介面 進行編譯...

GCC編譯器和GDB偵錯程式常用選項

gcc hello.c o hello 將hello.c編譯成hello可執行檔案 gcc e hello.c o hello.i 將hello.c 轉換成預處理後的檔案hello.i gcc s hello.c o hello.s 將hello.c 轉換成彙編檔案 hello.s gcc c he...

GCC編譯器和GDB偵錯程式常用選項

gcc hello.c o hello 將hello.c編譯成hello可執行檔案 gcc e hello.c o hello.i 將hello.c 轉換成預處理後的檔案hello.i gcc s hello.c o hello.s 將hello.c 轉換成彙編檔案 hello.s gcc c he...