使用GCC的引數跟蹤程式執行過程

2021-08-31 04:14:47 字數 300 閱讀 2851

當接手新專案時,通過此方法可以迅速了解程式執行期間各個函式的呼叫關係,來幫助熟悉**。

首先:gcc編譯時加上引數 -finstrument-functions 。

加上此引數則需要自己實現約定好的4個函式,通過這4個函式來實現跟蹤。

4個函式的實現**在gmail。

通過這4個函式,將每次呼叫時的函式位址輸出到檔案,然後使用addr2line轉換成函式名。

這個步驟的**實現在gmail:treefunc.c

附註:整個跟蹤過程會產生大量的資料,treefunc.c的輸出更可能達到數百m。待優化

linux下使用gcc編譯執行C C 程式

編譯c 首先,程式編譯過程有 1.預處理 展開巨集,標頭檔案,檢查 是否有誤 2.編譯 將.c轉為彙編 s 3.彙編 將彙編 s轉為機器 o 4.鏈結 將所有機器 o和庫檔案鏈結成乙個可執行程式 一般編譯常常包括了 預處理,編譯,彙編 在linux系統中,編譯c使用gcc編譯器,如下 gcc o o...

Linux下使用gcc編譯和執行C程式的簡單操作

1.編輯c程式檔案,名字為main.c include int main void 2.編譯與執行 1 簡單直接的方式 如下命令會在當前目錄下生成a.out檔案,使用.a.out執行 gcc main.c main 2 分步驟 原始檔編譯為可執行檔案,生成main.o gcc c main.c 編譯...

使用gcc編譯簡單的程式

使用虛擬機器軟體vmware,環境為 ubuntu18.04。terminal終端編寫 如下 mkdir film1 新建資料夾film1 cd film1 進入film1資料夾 vi sub1.c 新建.c檔案 vi sub2.c vi main.c sub1.c內容如下 float x2x in...