軟體工程師的 8 個最佳 Linux 偵錯器

軟體工程師的 8 個最佳 Linux 偵錯器
字元集=無效字元集 ID 48

偵錯器對於定位程式中的錯誤至關重要。他們會在編譯程式碼之前嘗試找出程式碼中的問題,通常會提供比編譯器本身更多的資訊。 Linux 作為一個主要的開源生態系統,擁有大量可在多種不同語言和處理架構上運行的此類應用程式。在本指南中,我們將直接深入 Linux 偵錯器的世界。

1.GNU調試器(GDB)

GNU 偵錯器,又稱 GDB,是現代程式設計師可以使用的最強大的 Linux 偵錯器之一。它是一個強大的工具,具有廣泛的功能。 GDB 支援許多流行的程式語言,包括 C、C++、Go 和 Rust。它也適用於許多不同的 CPU 架構,例如 x86、x86-64、ARM、PowerPC、SPARC 和 MIPS。

GDB運行測試程序的演示

使用以下命令安裝 GDB:

在基於 Ubuntu/Debian 的發行版中:

在 Fedora/RHEL 發行版:

在基於 Arch 的發行版中:

只要您使用帶有偵錯符號的 GCC 進行編譯,您就可以在程式執行時鍵入 s 逐步執行程式的指令。鍵入 r 將透過偵錯器執行您的程式。若要在載入程式的情況下啟動 GDB,只需在終端機中輸入 gdb,然後輸入程式路徑。

進入後,輸入help 將為您提供一個組織良好的目錄,解釋您可以使用這個全能調試器執行的所有操作!

2. 數據顯示調試器(DDD)

如果您不喜歡擺弄指令,但您仍然喜歡 GDB 提供的功能,DDD 為您提供了一個簡單的圖形化介面在點擊式介面中提供所有功能的前端。這是典型的 Linux 調試器 GUI。

DDD 運行一個基本程式並退出。

使用者介面可能看起來有點簡單,但它與任何其他調試器一樣強大。這裡的區別在於,您可以獲得具有圖形介面的 GNU 簽名調試器!

要安裝它:

在基於 Ubuntu/Debian 的發行版中:

在 Fedora/RHEL 發行版:

在基於 Arch 的發行版中:

任何基於 Arch 的東西都必須使用 AUR 助手,因為 DDD 在其官方儲存庫中不存在。或者,您可以在沒有 AUR 幫助程式的情況下在基於 Arch 的系統上安裝 DDD:

3.LLDB

LLDB 是 LLVM 專案的一部份。由於其高效的工作流程,LLVM 套件越來越受歡迎。它也成為 macOS Xcode 和 Android Studio 的預設調試器。 LLDB 的一些主要功能包括支援各種編譯器整合和遠端偵錯。它支援 C 語言(C、C++ 和 Objective-C)。

Linux調試器Lldb

對於已經熟悉基本 GDB 指令的人來說,LLDB 會感覺很熟悉。鍵入runr 將運行程序,鍵入steps 將逐步執行其子例程。

要安裝它:

在基於 Ubuntu/Debian 的發行版中:

在 Fedora/RHEL 發行版:

在基於 Arch 的發行版中:

4. 深入研究

Delve 是一款簡單但功能豐富的 Linux 偵錯器,適用於 Google Go 程式語言。您可以使用它在運行時與程式互動並操作 goroutine 和堆疊等內容。調試器本身是用 Go 編寫的,因此可以在與您正在測試的程式相同的環境中提供運行時。

Delve 偵錯器運行帶有基本程式碼的程式。

Delve 的運作原理與 GDB 和 LLDB 相同,但它具有一組與其他兩者有很大不同的獨特命令。進入後只需輸入 help 即可獲得它為您提供的所有調試選項的完整列表。

與適用於多種語言的更通用的調試器不同,Delve 提供了更多特定於 Go 的命令,讓您可以在應用程式運行時更精細地查看應用程式。

使用 Delve 查看特定的 Go 例程和執行緒。

要安裝它:

在基於 Ubuntu/Debian 的發行版中:

在 Fedora/RHEL 發行版:

在基於 Arch 的發行版中:

5.X調試

雖然大多數人學習轉儲變數(在 PHP 社群中稱為「dump & die」)來找出程式碼的某個方面出了什麼問題,但有時您需要更強大的東西它可以引導您完成所有日常工作。 Xdebug 為有抱負和經驗豐富的 PHP 程式設計師提供了這一點。

一些簡單的調試會話期間的 Xdebug 輸出

它是一個 Linux 偵錯器,可以逐行逐步執行 PHP 程式碼,並準確顯示處理網頁時發生的情況。 Xdebug 還可以在多種 IDE 上運行,包括 VSCode。它的其他功能包括強大的分析器、堆疊追蹤器以及轉儲完整執行段的能力。

安裝 Xdebug:

在基於 Ubuntu/Debian 的發行版中:

在 Fedora/RHEL 發行版:

在基於 Arch 的發行版中:

6.KDbg

KDbg 是用於 KDE 桌面環境 的 GUI 偵錯器。由於它像 DDD 一樣作為 GDB 前端運行,因此您可以獲得 GDB 的所有功能以及直覺的使用者介面。更有經驗的程式設計師肯定會喜歡在逐步執行程式碼時清楚地看到所有變量,以及顯示每個 CPU 暫存器所保存內容的完全專用面板。這在此處介紹的任何其他調試器中都不容易可視化。

正因為如此,KDbg 對於傳統的原生應用程式程式設計師來說是一個絕佳的選擇,從剛開始學習的蝌蚪到最頑強的老手。

KDbg 調試用 C 編寫的正在運行的程式。

要安裝 KDbg:

在基於 Ubuntu/Debian 的發行版中:

在 Fedora/RHEL 發行版:

在基於 Arch 的發行版中:

7. 選舉大門

Valgrind 是一款堅如磐石的記憶體調試器,提供許多用於軟體分析的附加工具。它可以在 Linux 和 Mac 上運行。此外,您可以將其用作框架並建立動態分析工具,例如分析器。總的來說,Valgrind 是專業人士的絕佳選擇,因為它具有豐富的功能集和各種可以在程式運行時監控程式記憶體的工具。

Valgrind 檢測程序中的記憶體洩漏。

要安裝 Valgrind:

在基於 Ubuntu/Debian 的發行版上:

在 Fedora/RHEL 發行版上:

在基於 Arch 的發行版上:

8. 跟蹤

strace 是 Unix 的用戶空間實用程序,允許使用者直接從終端追蹤系統呼叫和訊號。

Linux調試器Strace

程式設計師可以使用它來轉儲堆疊追蹤、過濾系統呼叫、修改返回碼、提取檔案描述符等等。

更重要的是,strace 允許您附加到正在執行的程式。這可以讓您深入了解電腦上運行的任何軟體,以了解有關可能導致崩潰的原因的更多資訊。

安裝 strace:

在基於 Ubuntu/Debian 的發行版中:

在 Fedora/RHEL 發行版:

在基於 Arch 的發行版中:

阿森納等待

借助這些工具,您可以以以前可能無法訪問的方式來探查、刺探和分析程式碼。可能需要遵循一些學習曲線,但這是非常值得的。如果您認真對待 Linux 編程,從長遠來看,學習如何使用其調試器將為您節省更多時間。

現在您已經擁有了最好的Linux 調試器,是時候為開發人員和程式設計師尋找最佳Linux 發行版了。一個>

圖片來源:所有圖片由作者提供。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *