Linux下的C/C++開發與調試工具
來源:互聯網
上載者:User
Linux開發環境相當完善,且功能完整,它主要由GNU的編譯器和庫,以及大量的系統常式及庫組成,能夠支援C++、C和組合語言程式,重點是針對C++和C語言。因為Linux的原始碼主要是用C語言實現的,開發人員可以方便地擷取並進行修改和重新編譯,因此為Linux作業系統提供了一個強大的C語言開發環境至關重要。Linux開發環境包括GNU編譯工具集、調試工具和相關的工具 + 生產力。 1.GNU編譯工具集GCC (1) cpp,C語言前置處理器。負責宏展開、條件編譯指令、包含其他標頭檔和行控制等功能。調用前置處理器是從原始碼建立二進位可執行程式的第一步。 (2) as,彙編器。用於根據組合語言的源檔案建立出帶有.o尾碼的二進位目標檔案。 (3)ld,連結器。用於將目標檔案與系統目標檔案和庫檔案進行連結,建立二進位的可執行程式。 2.GNU調試工具GDB GDB是一個威力強大和應用廣泛的調試器。GDB可以建立帶有特定調試資訊的程式,從而可以在代碼中設定斷點並在運行時逐步執行代碼。GDB中的常用指令包括list(列源碼), break(設定斷點), run(執行程式), next(執行下一行), step(逐步執行一行), print(顯示運算式), continue(繼續執行至下一點斷點或結束), info(顯示調試器狀態資訊), show(顯示被偵錯工具資訊), backtrace(顯示調用軌跡,同where, info stack)等。 3.工具 + 生產力集Binutils (1) ar, 歸檔各程式,建立、修改並從代碼歸檔中提取檔案。 (2) nm, 用於列出目標檔案中的符號。 (3) objcopy, 用於複製和轉換目標檔案。 (4) objdump, 用於顯示二進位檔案的內容。 (5) ranlib, 為歸檔檔案的內容產生索引。 (6) size, 列出目標檔案的總體大小及各段的大小。 (7) strings, 列出檔案中的可列印的字串。 (8) strip, 清除檔案是的符號。 (9) readelf, 顯示檔案中有關ELF格式的資訊。 (10) strace, 用於跟蹤程式執行的系統調用和所接收到的訊號。(Aiguille.LIU / 劉愛貴 aigui.liu@gmail.com)