Unix/命令/軟體開發指南
一個偵錯程式。GNU 的替代方案是 gdb.
連結
從檔案建立存檔。通常的用法是從編譯後的目標檔案建立存檔,然後將存檔提供給連結器。
連結
- ar, opengroup.org
- ar 手冊頁, man.cat-v.org
- ar, freebsd.org
- ar in GNU Binary Utilities, sourceware.org
- W:Ar (Unix)
編譯彙編原始碼。
連結
編譯 C 語言原始碼。GNU 的替代方案是 gcc。另一個替代方案是 clang。
連結
輸出 C 語言原始碼的呼叫圖。
連結
從原始碼建立標籤檔案。標籤檔案是物件定義和物件使用的文字索引,其中物件包括變數、函式等。該檔案有助於使用者和工具(如文字編輯器)導航原始碼。Emacs 使用其自己的變體,稱為 etags;或者,您可以使用 Exuberant ctags 選項 -e 生成 Emacs 格式的標籤檔案。
連結
- ctags, opengroup.org
- ctags, freebsd.org
- Exuberant ctags, ctags.sourceforge.net
- W:Ctags
輸出有關 C 語言原始碼檔案的交叉引用資訊。
連結
編譯 Fortran 77 原始碼。GNU Fortran 編譯器過去透過 g77 呼叫,現在透過 gfortran 呼叫。
連結
- fort77, opengroup.org
- f77 手冊頁, man.cat-v.org
- GNU Fortran 編譯器 手冊,gcc.gnu.org;也可以作為 pdf 獲取
GNU 編譯器集合是用於 C、C++ 和其他一些語言的編譯器套件。可以使用 gcc 命令編譯 C 語言
- gcc test.c
- 編譯 test.c,將其與必需的庫連結,並建立一個結果可執行檔案,即 a.out 或 a.exe。
- gcc test.c -o test
- 編譯 test.c,將其與必需的庫連結,並建立 test 可執行檔案。
- gcc -c mod.c -o mod.o
- 將 mod.c 編譯成 mod.o 目標檔案。-c 選項阻止連結。
- gcc test.c -o test mod.o
- 編譯 test.c,將其與 mod.o 連結,並建立一個名為 test 的可執行檔案。
- g++ test.cpp -o test
- 編譯和連結 C++ 原始碼。
連結
- GCC 線上文件, gcc.gnu.org
- GCC 和 Make - 編譯、連結和構建 C/C++ 應用程式, ntu.edu.sg
GNU 專案的一部分,有助於除錯 C/C++ 程式以及其他一些語言的程式。要除錯的程式需要使用 -g 標誌編譯。然後,您可以像 gdb myprog 一樣啟動 gdb,這會進入 gdb shell 而不執行程式。進入 gdb shell 後,您可以透過輸入命令來控制 gdb
- break main
- 在 main 函式處設定斷點。
- b main
- 上述命令的簡寫。一般來說,只要沒有歧義,就可以使用命令的字首。
- break MySource.c:145
- 在原始碼 MySource.c 的第 145 行處設定斷點。
- break MySource.c:145 if myvar > 3
- 設定條件斷點。
- watch myvar
- 建立一個監視點,當變數或表示式發生更改時停止執行。
- watch myvar if myvar > 3
- 建立一個條件監視點。
- info break
- 列出斷點。
- info watch
- 列出監視點。
- run
- 執行程式。最初,程式沒有執行。可以從同一個 gdb 會話多次執行程式。
- continue
- 繼續執行,直到遇到下一個斷點或程式結束。
- step
- 執行程式的一步,如果適用,則進入函式呼叫。
- next
- 執行程式的一步,但不巢狀到函式呼叫。
- quit
- 退出偵錯程式。
- print myvar
- 輸出變數的值。
- print (myvar * 3) << 4
- 輸出它計算的表示式的值。
- disp myvar
- 將變數新增到將在每一步輸出的表示式列表中。
- set myvar = 1
- 更改變數的值。
- set myvar = 1 << 4
- 更改變數的值,支援表示式求值。
- where
- 輸出呼叫堆疊。
- help breakpoints
- 輸出有關斷點的幫助資訊,包括處理斷點的命令。
華夏公益教科書中的其他地方:GCC 除錯/gdb,Linux 應用程式除錯技術/偵錯程式.
連結
- gdb, freebsd.org
- 使用 GDB 除錯, sourceware.org
- GDB wiki, sourceware.org
- GDB 快速參考 , csl.mtu.edu
- GDB 到 LLDB 命令對映, lldb.llvm.org
- GNU 偵錯程式, en.wikipedia.org
將目標檔案連結到可執行檔案。
連結
- ld 手冊頁, man.cat-v.org
- ld, freebsd.org
- GNU ld 手冊,sourceware.org
- LLD - The LLVM Linker, lld.llvm.org
根據提供的詞法規則生成 C 語言詞法分析器的原始碼。
連結
- lex, opengroup.org
- lex 手冊頁, man.cat-v.org
- lex, freebsd.org
- flex, github.com
- W:Lex (軟體)
輸出 C 語言原始碼中的可疑內容。
連結
根據生產輸入檔案和輸出檔案之間依賴關係的規範,驅動檔案生產過程。這樣驅動的檔案生產過程通常是編譯和連結。
連結
輸出在目標檔案或類似包含符號的檔案中找到的符號名稱。
連結
輸出來自目標檔案的資訊,例如反彙編。未被 POSIX 涵蓋。macOS 的類似工具是或曾經是 otool。
連結
對程式進行效能分析,識別佔用最多時間的程式碼位置。
連結
從可執行檔案和類似的編譯結果檔案中刪除某些資訊,這些資訊對於某些目的而言是不必要的。
連結
根據提供的語法規範生成 C 語言解析器的原始碼。代表 yet another compiler compiler。GNU 的替代方案是 bison,與 yacc 相容。
連結