8 der besten Linux-Debugger für Software-Ingenieure

Debugger sind unverzichtbar, um Fehler in Programmen zu finden. Sie erledigen die Vorarbeit, um Probleme in Ihrem Code zu lokalisieren, bevor es Zeit ist, ihn zu kompilieren, und liefern in der Regel mehr Informationen als der Compiler selbst. Linux, als primär Open-Source-Ökosystem, bietet eine Vielzahl dieser Anwendungen, die in mehreren verschiedenen Programmiersprachen und auf verschiedenen Verarbeitungsarchitekturen funktionieren. In diesem Leitfaden tauchen wir direkt in die Welt der Linux-Debugger ein.
Inhaltsverzeichnis
- GNU Debugger (GDB)
- Data Display Debugger (DDD)
- LLDB
- Delve
- Xdebug
- KDbg
- Valgrind
- strace
1. GNU Debugger (GDB)
Der GNU Debugger, auch bekannt als GDB, ist einer der leistungsstärksten Linux-Debugger, die modernen Programmierern zur Verfügung stehen. Er ist ein robustes Tool mit einem umfangreichen Funktionsumfang. GDB unterstützt viele beliebte Programmiersprachen, darunter C, C++, Go und Rust. Er funktioniert auch auf vielen verschiedenen CPU-Architekturen, wie x86, x86-64, ARM, PowerPC, SPARC und MIPS.

Installieren Sie GDB mit diesen Befehlen:
In Ubuntu/Debian-basierten Distributionen:
sudo apt installgdbIn Fedora/RHEL-Distributionen:
sudo dnf installgdbIn Arch-basierten Distributionen:
sudo pacman -SgdbSolange Sie mit GCC mit Debug-Symbolen kompilieren, können Sie die Anweisungen eines Programms Schritt für Schritt durchgehen, indem Sie s eingeben. Durch Eingabe von r wird Ihr Programm durch den Debugger ausgeführt. Um GDB mit dem geladenen Programm zu starten, geben Sie einfach gdb in Ihrem Terminal gefolgt von dem Programmpfad ein.
Sobald Sie drinnen sind, zeigt die Eingabe von help einen gut organisierten Katalog, der alles erklärt, was Sie mit diesem mächtigen Debugger tun können!
2. Data Display Debugger (DDD)
Wenn es Ihnen nicht liegt, mit Befehlen zu fummeln, Sie aber dennoch die Funktionen von GDB lieben, bietet DDD eine einfache grafische Benutzeroberfläche, die alle Funktionen in einer Point-and-Click-Oberfläche bereitstellt. Es ist die klassische Linux-Debugger-GUI.

Die Benutzeroberfläche mag etwas minimalistisch aussehen, ist aber in jeder Hinsicht so leistungsfähig wie jeder andere Debugger. Der Unterschied besteht darin, dass Sie den charakteristischen Debugger von GNU mit einer grafischen Schnittstelle erhalten!
Um es zu installieren:
In Ubuntu/Debian-basierten Distributionen:
sudo apt installdddIn Fedora/RHEL-Distributionen:
sudo dnf installdddIn Arch-basierten Distributionen:
yay -SdddAlles, was auf Arch basiert, muss einen AUR-Helper verwenden, da DDD in den offiziellen Repositories nicht existiert. Alternativ können Sie DDD auf einem Arch-basierten System ohne AUR-Helper installieren:
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/ddd.git
cd ddd
makepkg -si3. LLDB
LLDB ist Teil des LLVM-Projekts. Die LLVM-Suite hat an Popularität gewonnen, dank ihres effizienten Workflows. Es ist auch der Standard-Debugger für Xcode und Android Studio von macOS geworden. Einige der Hauptmerkmale von LLDB umfassen die Unterstützung für verschiedene Compiler-Integration und Remote-Debugging. Es unterstützt die C-Sprachen (C, C++ und Objective-C).

Für diejenigen, die bereits mit grundlegenden GDB-Befehlen vertraut sind, wird LLDB vertraut erscheinen. Die Eingabe von run oder r startet das Programm, und die Eingabe von step oder s führt durch die Unterroutinen.
Um es zu installieren:
In Ubuntu/Debian-basierten Distributionen:
sudo apt install lldbIn Fedora/RHEL-Distributionen:
sudo dnf install lldbIn Arch-basierten Distributionen:
sudo pacman -S lldb4. Delve
Delve ist ein einfacher, aber funktionsreicher Linux-Debugger für die Programmiersprache Go von Google. Sie können ihn verwenden, um in der Laufzeit mit Ihrem Programm zu interagieren und Dinge wie Goroutinen und Stacks zu manipulieren. Der Debugger selbst ist in Go geschrieben, wodurch er eine Laufzeit in der gleichen Umgebung wie das getestete Programm bietet.
Delve funktioniert nach dem gleichen Prinzip wie GDB und LLDB, nur dass es eine einzigartige Befehlsmenge hat, die sich stark von den beiden anderen unterscheidet. Geben Sie einfach help ein, sobald Sie drinnen sind, und Sie erhalten eine vollständige Liste aller Debug-Optionen, die es Ihnen bietet.
Im Gegensatz zu allgemeineren Debuggern für mehrere Sprachen bietet Delve spezifischere Go-Befehle, mit denen Sie in Ihrer Anwendung auf granularer Ebene während der Ausführung nachschauen können.

Um es zu installieren:
In Ubuntu/Debian-basierten Distributionen:
sudo apt install delveIn Fedora/RHEL-Distributionen:
sudo dnf install delveIn Arch-basierten Distributionen:
sudo pacman -S delve5. Xdebug
Während die meisten Leute lernen, ihre Variablen (in PHP-Communities als „dump & die“ bekannt) anzuzeigen, um herauszufinden, was mit einem bestimmten Aspekt ihres Codes nicht stimmt, gibt es Zeiten, in denen Sie etwas Robusteres benötigen, das Sie durch alle Ihre Routinen führt. Xdebug bietet dies in Hülle und Fülle für angehende und erfahrene PHP-Programmierer.
Es ist ein Linux-Debugger, der Zeile für Zeile durch PHP-Code geht und genau zeigt, was passiert, während eine Webseite verarbeitet wird. Xdebug funktioniert auch auf mehreren IDEs, einschließlich VSCode. Weitere Funktionen umfassen einen leistungsstarken Profiler, Stack-Tracer und die Möglichkeit, das vollständige Ausführungssegment anzuzeigen.
Um Xdebug zu installieren:
In Ubuntu/Debian-basierten Distributionen:
sudo apt install php-xdebugIn Fedora/RHEL-Distributionen:
sudo dnf install php-xdebugIn Arch-basierten Distributionen:
sudo pacman -S xdebug6. KDbg
KDbg ist ein GUI-Debugger für die KDE-Desktopumgebung. Da er wie DDD als GDB-Frontend fungiert, erhalten Sie alle Funktionen von GDB zusammen mit einer intuitiven Benutzeroberfläche. Erfahrener Programmierer werden sicherlich eine klare Ansicht aller Variablen zu schätzen wissen, während sie durch ihren Code gehen, sowie ein vollständig gewidmetes Panel, das zeigt, was jeder CPU-Register enthält. Dies ist in keinem der hier behandelten anderen Debugger so einfach zu visualisieren.
Aufgrund dessen ist KDbg eine fantastische Wahl für traditionelle native Anwendungsprogrammierer, von den Neulingen, die gerade anfangen zu lernen, bis hin zu den erfahrensten Veteranen.

Um KDbg zu installieren:
In Ubuntu/Debian-basierten Distributionen:
sudo apt install kdbgIn Fedora/RHEL-Distributionen:
sudo dnf install kdbgIn Arch-basierten Distributionen:
sudo pacman -S kdbgHinweis: Wenn Sie eine Ubuntu- oder Debian-basierte Distribution verwenden und das Paket für kdbg in den offiziellen Repositories nicht finden, geben Sie genau das ein, um es selbst zu erstellen:
sudo apt install build-essential cmake extra-cmake-modules qtbase5-dev libkf5i18n-dev libkf5iconthemes-dev libkf5xmlgui-dev
git clone -b maint https://github.com/j6t/kdbg.git
cd kdbg
cmake .
make
sudomakeinstall7. Valgrind
Valgrind ist ein robuster Speicher-Debugger, der viele zusätzliche Tools zur Softwareanalyse anbietet. Er läuft sowohl auf Linux als auch auf Mac. Darüber hinaus können Sie ihn als Framework verwenden und dynamische Analysetools wie Profiler erstellen. Insgesamt ist Valgrind eine ausgezeichnete Wahl für Fachleute aufgrund seines reichen Funktionsumfangs und der Vielzahl an Tools, die den Speicher eines Programms während der Ausführung überwachen.

Um Valgrind zu installieren:
In Ubuntu/Debian-basierten Distributionen:
sudo apt installvalgrindIn Fedora/RHEL-Distributionen:
sudo dnf installvalgrindIn Arch-basierten Distributionen:
sudo pacman -Svalgrind8. strace
strace ist ein Benutzerdienstprogramm für Unix, das es Benutzern ermöglicht, Systemaufrufe und Signale direkt über das Terminal zu protokollieren.

Programmierer können es verwenden, um Stack-Traces anzuzeigen, Systemaufrufe zu filtern, Rückgabewerte zu ändern, Dateideskriptoren zu extrahieren und vieles mehr.
Wichtiger ist, dass strace Ihnen ermöglicht, sich an laufende Programme anzuhängen. Dadurch können Sie unter die Fingernägel jeder Software, die Sie auf Ihrem Rechner ausführen, gelangen, um mehr darüber zu erfahren, was einen Absturz verursachen könnte.
Um strace zu installieren:
In Ubuntu/Debian-basierten Distributionen:
sudo apt installstraceIn Fedora/RHEL-Distributionen:
sudo dnf installstraceIn Arch-basierten Distributionen:
sudo pacman -SstraceDas Arsenal wartet
Mit diesen Tools können Sie Ihren Code auf Arten untersuchen, die zuvor möglicherweise unerreichbar schienen. Es kann eine gewisse Lernkurve geben, aber es ist die Mühe wert. Wenn Sie es ernst meinen mit der Programmierung in Linux, wird Lernen, wie man seine Debugger verwendet, Ihnen langfristig viel Zeit sparen.
Jetzt, da Sie die besten Linux-Debugger haben, ist es an der Zeit, die besten Linux-Distributionen für Entwickler und Programmierer zu finden.