跳轉到內容

Unix/命令/軟體開發指南

來自華夏公益教科書,開放的書籍,開放的世界

一個偵錯程式。GNU 的替代方案是 gdb.

連結

從檔案建立存檔。通常的用法是從編譯後的目標檔案建立存檔,然後將存檔提供給連結器。

連結

編譯彙編原始碼。

連結

編譯 C 語言原始碼。GNU 的替代方案是 gcc。另一個替代方案是 clang

連結

輸出 C 語言原始碼的呼叫圖。

連結

從原始碼建立標籤檔案。標籤檔案是物件定義和物件使用的文字索引,其中物件包括變數、函式等。該檔案有助於使用者和工具(如文字編輯器)導航原始碼。Emacs 使用其自己的變體,稱為 etags;或者,您可以使用 Exuberant ctags 選項 -e 生成 Emacs 格式的標籤檔案。

連結

輸出有關 C 語言原始碼檔案的交叉引用資訊。

連結

編譯 Fortran 77 原始碼。GNU Fortran 編譯器過去透過 g77 呼叫,現在透過 gfortran 呼叫。

連結

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++ 原始碼。

連結

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 除錯/gdbLinux 應用程式除錯技術/偵錯程式.

連結

將目標檔案連結到可執行檔案。

連結

根據提供的詞法規則生成 C 語言詞法分析器的原始碼。

連結

輸出 C 語言原始碼中的可疑內容。

連結

根據生產輸入檔案和輸出檔案之間依賴關係的規範,驅動檔案生產過程。這樣驅動的檔案生產過程通常是編譯和連結。

連結

輸出在目標檔案或類似包含符號的檔案中找到的符號名稱。

連結

  • nm, opengroup.org
  • nm 手冊頁, man.cat-v.org
  • nm, freebsd.org
  • nm 在 GNU 二進位制工具中,sourceware.org

輸出來自目標檔案的資訊,例如反彙編。未被 POSIX 涵蓋。macOS 的類似工具是或曾經是 otool

連結

  • objdump, freebsd.org
  • objdump 在 GNU 二進位制工具中,sourceware.org
  • otool 原始碼,opensource.apple.com

對程式進行效能分析,識別佔用最多時間的程式碼位置。

連結

從可執行檔案和類似的編譯結果檔案中刪除某些資訊,這些資訊對於某些目的而言是不必要的。

連結

根據提供的語法規範生成 C 語言解析器的原始碼。代表 yet another compiler compiler。GNU 的替代方案是 bison,與 yacc 相容。

連結

華夏公益教科書