WikiDer > GNU-Debugger

GNU Debugger
GNU-Debugger
Logo
GNU-Debugger
EntwicklerGNU-Projekt
Veröffentlicht1986
Letzte Version9.1 
(8. Februar 2020)
StatusAktiv
BetriebssystemUnix-ish und Fenster
Geschrieben inC
KategorieDebugger
LizenzGPL
Versionskontrollesourceware.org
WebseiteOffizielle Website
Portal  Portalsymbol  Informatik
Gratis Software

Das GNU-Debugger (GDB) ist ein Debugger vor dem Unix-ähnliche Systeme mit Unterstützung für viele Programmiersprachen, unter denen Ada, Versammlung, C, C , d, Ziel c, Frei Pascal, fortran, Modula-2 und Frieden.[1][2]

Geschichte

Die Entwicklung der GDB wurde 1986 von Richard Stallman als Teil seiner GNUSystem, nachdem er GNU-Emacs (sehen Emacs) "relativ Stabil".[3] GDB ist gratis Software die auf die verteilt wird GNU General Public License (GPL). Der GNU Debugger ist nach dem DBX-Debugger, der mitgeliefert wurde Berkeley UnixVerteilungen.[3]

Der GNU Debugger wird von der GDB-Kontrollgruppe (Lenkungsausschuss der GDB), die sich aus den Free Software Foundation.[4]

Technische Details

Eigenschaften

GDB bietet umfangreiche Funktionen zum Verfolgen und Anpassen der Ausführung von Computer Programms. Der Benutzer kann das interne Variablen ein Programm überwachen und ändern und Funktionen unabhängig vom normalen Verhalten aufrufen.

GDB arbeitet auf Computern mit sehr unterschiedlichen Befehlssätzen.

GDB wird noch aktiv weiterentwickelt. Version 7.0 beinhaltete Unterstützung für PythonSkript hinzugefügt.[5]In Version 7.8 wurde GNU GuileSkript hinzugefügt.[6] Seit Version 7.0 wird auch das "Backward-Debugging" unterstützt. Das bedeutet, dass Sie nicht nur zum nächsten Schritt im Code gehen können, sondern auch zum vorherigen. Dies kann beispielsweise verwendet werden, um zu sehen, was vor dem Absturz eines Programms passiert ist.[7]

Remote-Debugging

GDB bietet einen Remote-Modus, mit dem Sie eingebettete Systeme zu debuggen. Dies bedeutet, dass GDB auf dem ersten Computer und das zu debuggende Programm auf einem zweiten Computer ausgeführt wird. GDB kann über das GDB-Protokoll mit dem Remote-Modul kommunizieren. Dazu kann eine serielle Verbindung oder eine TCP/IP-Verbindung verwendet werden.[8]

Der gleiche Modus wird von verwendet KGDB zum Spinnen Linux Kernel mit gdb debuggen. KGDB ermöglicht es Kernel-Entwicklern, einen Linux-Kernel ähnlich wie Computerprogramme zu debuggen. KGDB macht es möglich, Haltepunkte im Kernel-Code, Durchlaufen des Codes und Überwachen von Variablen. Auf Architekturen, in denen Hardwareregister vorhanden sind, können Watchpoints verwendet werden. Watchpoints können Breakpoints initiieren, wenn sie sicher sind Speicheradressen ausgeführt oder gelesen werden. KGDB benötigt eine zusätzliche Maschine, die an die zu debuggende Maschine angeschlossen ist. Diese Verbindung kann seriell oder über Ethernet abgelaufen. Auf FreeBSD ist es auch möglich, über zu debuggen FireWire-direkter Speicherzugriff (DMA).[9]

Grafische Benutzeroberfläche

Der Debugger enthält keine eigenen grafische Benutzeroberfläche und verwendet eine Vorgabe Befehlszeilenschnittstelle. Es gibt mehrere grafische Benutzeroberflächen (Frontends), die für gdb erstellt wurden, wie z UltraGDB, xxgdb, Datenanzeige-Debugger (DDD), Nemiver, KDBg, GDBtk/Insight und die HP Wildebeest Debugger GUI (WDB GUI).

IDEist wie Codelite, Code::Blöcke , Dev-C , Geany, GNAT-Programmierstudio (GEOGRAPHISCHES POSITIONIERUNGS SYSTEM), KDevelop, Qt-Ersteller, Lazarus, MonoEntwickeln, Finsternis, NetBeans, Xcode und Visual Studio Unterstützung für GDB haben. GNU-Emacs hat einen "GUD-Modus" und Tools für VIM existieren (zum Beispiel clown). Diese Tools bieten ähnliche Funktionen wie in IDEs integrierte Debugger.

Es gibt auch andere Debugging-Tools, die in GDB integriert werden, wie z Speicherleckdetektoren.

Externe Links