8 der besten Linux-Debugger für Softwareentwickler

8 der besten Linux-Debugger für Softwareentwickler
Charset=invalidcharsetid 48

Debugger sind für die Fehlersuche in Programmen unerlässlich. Sie erledigen die Kleinarbeit, indem sie versuchen, Probleme in Ihrem Code zu finden, bevor es an der Zeit ist, ihn zu kompilieren. Dabei stellen sie normalerweise mehr Informationen bereit, als der Compiler selbst dies tun würde. Da es sich bei Linux hauptsächlich um ein Open-Source-Ökosystem handelt, gibt es eine Fülle solcher Anwendungen, die auf verschiedenen Sprachen und Verarbeitungsarchitekturen laufen. In diesem Leitfaden tauchen wir direkt in die Welt der Linux-Debugger ein.

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. Es handelt sich um ein robustes Tool mit umfangreichen Funktionen. GDB unterstützt viele beliebte Programmiersprachen, darunter C, C++, Go und Rust. Es funktioniert auch auf vielen verschiedenen CPU-Architekturen wie x86, x86-64, ARM, PowerPC, SPARC und MIPS.

Demonstration, wie GDB ein Testprogramm ausführt

Installieren Sie GDB mit diesen Befehlen:

In Ubuntu/Debian-basierten Distributionen:

In Fedora/RHEL-Distributionen:

In Arch-basierten Distributionen:

Solange Sie mit GCC mit Debug-Symbolen kompilieren, können Sie die Anweisungen eines Programms während der Ausführung durchgehen, indem Sie s eingeben. Wenn Sie r eingeben, wird Ihr Programm über den Debugger ausgeführt. Um GDB mit geladenem Programm zu starten, geben Sie einfach gdb in Ihr Terminal ein, gefolgt vom Programmpfad.

Sobald Sie drin sind, erhalten Sie durch Eingabe von help einen gut organisierten Katalog, der alles erklärt, was Sie mit diesem leistungsstarken Debugger tun können!

2. Datenanzeige-Debugger (DDD)

Wenn Sie nicht gerne mit Befehlen herumhantieren, Sie aber trotzdem die Funktionen lieben, die GDB zu bieten hat, bietet Ihnen DDD eine einfache grafische Darstellung Frontend, das alle seine Funktionen in einer Point-and-Click-Oberfläche bereitstellt. Es ist die typische Linux-Debugger-GUI.

DDD führt ein rudimentäres Programm aus und beendet es.

Die Benutzeroberfläche sieht vielleicht etwas schlicht aus, ist aber genauso leistungsstark wie jeder andere Debugger. Der Unterschied besteht darin, dass Sie den GNU-Signatur-Debugger mit einer grafischen Oberfläche erhalten!

Um es zu installieren:

In Ubuntu/Debian-basierten Distributionen:

In Fedora/RHEL-Distributionen:

In Arch-basierten Distributionen:

Alles, was auf Arch basiert, muss einen AUR-Helfer verwenden, da DDD in seinen offiziellen Repositories nicht vorhanden ist. Alternativ können Sie DDD auf einem Arch-basierten System ohne AUR-Helfer installieren:

3. LLDB

LLDB ist Teil des LLVM-Projekts. Die LLVM-Suite erfreut sich dank ihres effizienten Workflows immer größerer Beliebtheit. Es ist auch zum Standard-Debugger für Xcode und Android Studio von macOS geworden. Zu den Hauptfunktionen von LLDB gehört die Unterstützung verschiedener Compiler-Integrationen und Remote-Debugging. Es unterstützt die C-Sprachen (C, C++ und Objective-C).

Linuxdebugger Lldb

Für diejenigen, die bereits mit grundlegenden GDB-Befehlen vertraut sind, wird LLDB vertraut vorkommen. Durch Eingabe von run oder r wird das Programm ausgeführt, und durch Eingabe von step oder s werden die Unterprogramme schrittweise durchlaufen.

Um es zu installieren:

In Ubuntu/Debian-basierten Distributionen:

In Fedora/RHEL-Distributionen:

In Arch-basierten Distributionen:

4. Tauchen Sie ein

Delve ist ein einfacher, aber funktionsreicher Linux-Debugger für die Programmiersprache Go von Google. Sie können damit zur Laufzeit mit Ihrem Programm interagieren und Dinge wie Goroutinen und Stacks manipulieren. Der Debugger selbst ist in Go geschrieben und bietet somit eine Laufzeit in derselben Umgebung wie das Programm, das Sie testen.

Delve-Debugger, der ein Programm mit rudimentärem Code ausführt.

Delve funktioniert nach dem gleichen Prinzip wie GDB und LLDB, außer dass es über einen einzigartigen Befehlssatz verfügt, der sich stark von den beiden anderen unterscheidet. Geben Sie einfach help ein, sobald Sie angemeldet sind, und Sie erhalten eine vollständige Liste aller Debug-Optionen, die Ihnen zur Verfügung stehen.

Im Gegensatz zu allgemeineren Debuggern für mehrere Sprachen bietet Delve mehr Go-spezifische Befehle, mit denen Sie während der Ausführung Ihrer Anwendung auf einer detaillierteren Ebene eindringen können.

Verwenden Sie Delve, um bestimmte Go-Routinen und -Threads zu untersuchen.

Um es zu installieren:

In Ubuntu/Debian-basierten Distributionen:

In Fedora/RHEL-Distributionen:

In Arch-basierten Distributionen:

5. Xdebug

Während die meisten Leute lernen, ihre Variablen zu sichern (in PHP-Communities als „dump & die“ bekannt), um herauszufinden, was mit einem bestimmten Aspekt ihres Codes nicht stimmt, gibt es Zeiten, in denen Sie etwas Robusteres benötigen Das kann Sie durch alle Ihre Routinen führen. Xdebug bietet dies in Hülle und Fülle für angehende und erfahrene PHP-Programmierer.

Einige einfache Xdebug-Ausgaben während einer Debug-Sitzung

Dabei handelt es sich um einen Linux-Debugger, der den PHP-Code Zeile für Zeile durchgeht und genau anzeigt, was bei der Verarbeitung einer Webseite passiert. Xdebug funktioniert auch auf mehreren IDEs, einschließlich VSCode. Zu den weiteren Funktionen gehören ein robuster Profiler, Stack-Tracer und die Möglichkeit, das gesamte Ausführungssegment zu sichern.

So installieren Sie Xdebug:

In Ubuntu/Debian-basierten Distributionen:

In Fedora/RHEL-Distributionen:

In Arch-basierten Distributionen:

6. KDbg

KDbg ist ein GUI-Debugger für die KDE-Desktop-Umgebung. Da es wie DDD als GDB-Frontend läuft, erhalten Sie alle Funktionen von GDB zusammen mit einer intuitiven Benutzeroberfläche. Erfahrenere Programmierer werden sicherlich eine klare Sicht auf alle Variablen zu schätzen wissen, während sie ihren Code schrittweise durchgehen, sowie ein komplett eigenes Panel, das anzeigt, was jedes CPU-Register enthält. Dies ist bei keinem der anderen hier behandelten Debugger annähernd so einfach zu visualisieren.

Aus diesem Grund ist KDbg eine fantastische Wahl für traditionelle native Anwendungsprogrammierer, von den Kaulquappen, die gerade erst anfangen zu lernen, bis zu den erfahrensten Veteranen.

KDbg debuggt ein laufendes Programm, das in C geschrieben ist.

So installieren Sie KDbg:

In Ubuntu/Debian-basierten Distributionen:

In Fedora/RHEL-Distributionen:

In Arch-basierten Distributionen:

7. Wahltor

Valgrind ist ein absolut solider Speicher-Debugger, der viele zusätzliche Tools für die Softwareanalyse bietet. Es läuft sowohl auf Linux als auch auf Mac. Darüber hinaus können Sie es als Framework verwenden und dynamische Analysetools wie Profiler erstellen. Insgesamt ist Valgrind aufgrund seines umfangreichen Funktionsumfangs und der Vielzahl an Tools, die den Speicher eines Programms während der Ausführung überwachen, eine ausgezeichnete Wahl für Profis.

Valgrind erkennt einen Speicherverlust in einem Programm.

So installieren Sie Valgrind:

Auf Ubuntu/Debian-basierten Distributionen:

Auf Fedora/RHEL-Distributionen:

Auf Arch-basierten Distributionen:

8. strace

strace ist ein Userspace-Dienstprogramm für Unix, mit dem Benutzer Systemaufrufe und Signale direkt vom Terminal aus verfolgen können.

Linuxdebugger Strace

Programmierer können damit Stack-Traces sichern, Systemaufrufe filtern, Rückgabecodes ändern, Dateideskriptoren extrahieren und vieles mehr.

Noch wichtiger ist, dass Sie mit Strace eine Verbindung zu laufenden Programmen herstellen können. Auf diese Weise können Sie die Software, die Sie auf Ihrem Computer ausführen, unter die Lupe nehmen, um mehr darüber zu erfahren, was einen Absturz verursachen könnte.

So installieren Sie strace:

In Ubuntu/Debian-basierten Distributionen:

In Fedora/RHEL-Distributionen:

In Arch-basierten Distributionen:

Das Arsenal erwartet Sie

Mit diesen Tools können Sie Ihren Code auf eine Weise durchsuchen, produzieren und analysieren, die zuvor möglicherweise unzugänglich schien. Es kann sein, dass Sie eine gewisse Lernkurve durchlaufen müssen, aber es lohnt sich. Wenn Sie ernsthaft unter Linux programmieren möchten, können Sie durch das Erlernen der Verwendung der Debugger auf lange Sicht viel mehr Zeit sparen.

Da Sie nun über die besten Linux-Debugger verfügen, ist es an der Zeit, die besten Linux-Distributionen für Entwickler und Programmierer zu finden.

Bildnachweis: Alle Bilder vom Autor.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert