Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

GNU Debugger

Das UNIX-Programm GDB – der GNU Debugger – ist der De-facto-Standard-Debugger von Linux-Systemen und wurde vom GNU-Projekt entwickelt.

Inhalt4 Abschnitte
  1. 1. Überblick und Bedeutung
  2. 2. Fehlersuche und Steuerung
  3. 3. Bedienung und grafische Oberflächen
  4. 4. Unterstützte Plattformen

Überblick und Bedeutung

GDB, der GNU Debugger, ist ein vom GNU-Projekt entwickeltes Programm zur Fehlersuche in anderer Software. Auf Linux-Systemen gilt er als De-facto-Standard-Debugger. Er erschien 1986, steht unter der GPL und läuft auf Unix-Derivaten wie Linux sowie unter Windows. Als Programmiersprachen von GDB selbst werden C und Scheme genannt; die angegebene aktuelle Version ist 17.2 vom 10. Mai 2026.

GDB unterstützt die Untersuchung von Programmen in C, C++, Objective-C, FORTRAN, Java, Pascal, Modula-2, Ada, D und Go sowie teilweise weiteren Sprachen. Seine Bedienoberfläche orientiert sich am Debugger dbx, der ursprünglich aus BSD-Unix stammt.

Fehlersuche und Steuerung

GDB kann den Ablauf eines Programms verfolgen und während der Ausführung gezielt eingreifen. Zu den wichtigsten Funktionen gehören:

  • Breakpoints: festgelegte Stellen, an denen die Programmausführung anhält.
  • Stacktrace: eine Ausgabe der aktiven Funktionsaufrufe, mit der sich der Weg bis zu einem Fehler nachvollziehen lässt.
  • Untersuchung und Veränderung von Variablen während der Laufzeit.
  • Aufruf von Funktionen unabhängig vom normalen Programmablauf.
  • Reverse Debugging: Seit Version 7.0 kann die Ausführung nicht nur vorwärts, sondern auch rückwärts verfolgt werden.

Wiederkehrende Abläufe lassen sich mit Python und GNU Guile automatisieren. Außerdem kann GDB mit weiteren Werkzeugen zusammenarbeiten, beispielsweise mit Detektoren für Speicherlecks.

Bedienung und grafische Oberflächen

GDB besitzt keine eigene grafische Benutzeroberfläche. Es arbeitet grundsätzlich über die Standard-Ein- und -Ausgabe und verwendet GNU readline zur Texteingabe. Optional steht eine auf der curses-Bibliothek beruhende textbasierte Benutzeroberfläche (TUI) zur Verfügung.

Mehrere andere Programme verwenden GDB als Backend, also als im Hintergrund arbeitende Debugging-Komponente. Dazu gehören das Eclipse-Plugin C/C++ Development Tools, ddd, das ncurses-basierte cgdb, das im Webbrowser laufende gdbgui, Insight und Emacs im „GUD mode“. Auch Xcode nutzte GDB; seit Xcode 5 wird es von der Entwicklungsumgebung unter OS X jedoch nicht mehr offiziell unterstützt.

Unterstützte Plattformen

GDB wurde auf viele Systeme portiert und unterstützt oder unterstützte zahlreiche Prozessorarchitekturen. Genannt werden Alpha, ARM, Atmel AVR, Analog Devices Blackfin, H8/300, System/370, System/390, System z, x86, x86-64, IA-64 „Itanium“, Motorola 68000, MIPS und MIPS64, PA-RISC, PowerPC in 32- und 64-Bit-Ausführung, SuperH, SPARC, VAX und Cell. Dadurch kann GDB zur Fehlersuche auf sehr unterschiedlichen Hardwareplattformen eingesetzt werden.

Weiterlesen

Microsoft Windows Microsoft Windows (englische Aussprache [ˈmaɪ.kɹoʊ.sɒft ˈwɪn.doʊz]) bzw. Windows ist eine Reihe proprietärer grafischer Betriebssystemfamilien von Microsoft … Debugger Funktionen eines Debuggers · die Steuerung des Programmablaufs, insbesondere durch Haltepunkte und die Einzelschritt-Verarbeitung von Befehlen · das Inspizieren … Programmiersprache Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es … C (Programmiersprache) C ist eine imperative und prozedurale Programmiersprache, die der Informatiker Dennis Ritchie in den frühen 1970er Jahren an den Bell Laboratories entwickelte. Java (Programmiersprache) Java ist eine objektorientierte Programmiersprache und eine eingetragene Marke des Unternehmens Sun Microsystems, welches 2010 von Oracle übernommen wurde. Pascal (Programmiersprache) Besonderheiten · Sehr hohe Prozesssicherheit · Keine nullterminierten Zeichenketten · Strikte Trennung zwischen Programm, Funktionen und Prozeduren · Deklarationen. Go (Programmiersprache) Go (auch Golang) ist eine kompilierbare Programmiersprache, die Nebenläufigkeit und automatische Speicherbereinigung unterstützt. Entwickelt wurde Go von … Haltepunkt (Programmierung) Ein Haltepunkt (englisch: breakpoint) bezeichnet bei der Fehlerbereinigung (Debugging) von Computerprogrammen eine besonders markierte Stelle im Programm. Variable (Programmierung) In der Programmierung ist eine Variable ein abstrakter Behälter für einen Wert, der bei der Ausführung eines Computerprogramms auftritt. Funktion (Programmierung) Eine Funktion (englisch function) ist in der Informatik und in verschiedenen höheren Programmiersprachen die Bezeichnung eines Programmkonstrukts, … Python (Programmiersprache) Python ([ˈpʰaɪθn̩], [ ˈpʰaɪθɑn], auf Deutsch auch [ ˈpʰyːtɔn]) ist eine universell nutzbare, üblicherweise interpretierte, höhere Programmiersprache. ARM-Architektur Der wesentliche Unterschied des ARM9 gegenüber dem ARM7 ist je ein getrennter Bus für Instruktionen und Daten (Harvard-Architektur). Meist werden diese an …