Zum Inhalt springen

GDB 18.1 bringt Non-Stop-Debugging unter Windows, streicht stabs

GDB 18.1, erschienen am 25. September, bringt Non-Stop-Debugging auf Windows 10+, neue save- und Umgebungsbefehle und entfernt das alte stabs-Debugformat.

Von Tech AI Wire Team

4 Min. Lesezeit

XLinkedIn
A screenshot of GDB's text interface paused at a breakpoint in a multithreaded C++ file, with a stack backtrace below the source view.
Foto: Wikimedia Commons / Auremel, CC BY-SA 3.0

Das GNU-Projekt hat am 25. September 2026 Version 18.1 von GDB veröffentlicht, seinem Debugger für die Kommandozeile. Die größten Änderungen betreffen Windows: Dort gibt es jetzt Non-Stop-Debugging unter Windows 10 und neuer. Die Version entfernt außerdem mehrere alte Debugformate. Einige ältere Builds lassen sich daher nicht mehr sauber laden.

Mit GDB kann man ein laufendes Programm anhalten, Zeile für Zeile durchgehen und seine Variablen untersuchen. Der Debugger unterstützt Ada, C, C++, Fortran, Go, Rust und viele andere Sprachen. Die folgenden Änderungen stammen aus der offiziellen Release-Ankündigung auf der Mailingliste gdb-announce, ergänzt um Details aus dem Bericht von LWN.

Was sich für Windows-Entwickler ändert

Laut der Ankündigung bekommt Windows in GDB 18.1 die meisten Verbesserungen. Das native Windows-Ziel, also GDB beim Debuggen eines Programms auf demselben Windows-Rechner, unterstützt jetzt den Non-Stop-Modus unter Windows 10 und neuer.

Im Non-Stop-Modus hält ein Thread an einem Haltepunkt an, während die anderen Threads des Programms weiterlaufen. Das ist wichtig für Server und GUI-Anwendungen. Dort kann das gleichzeitige Anhalten aller Threads genau den Fehler verdecken, den man sucht. Windows erhält außerdem Scheduler-Locking. Damit legt man fest, ob andere Threads laufen dürfen, während man einen einzelnen Schritt für Schritt ausführt.

GDB unter Windows kann jetzt auch Variablen im Thread-Local Storage lesen. Das sind Variablen, die für jeden Thread einen eigenen Wert haben. Die Ankündigung nennt außerdem 24-Bit-Truecolor im Windows Terminal, mit UTF-8-Text und Emoji. Dateipfade werden jetzt durchgehend mit Schrägstrichen ausgegeben.

Neue Befehle in GDB 18.1

Die Version bringt mehrere neue Befehle, die sowohl in der Ankündigung als auch in der Zusammenfassung von LWN stehen:

BefehlFunktion
set/show/unset local-environmentUmgebung des untersuchten Programms verwalten
save historyBefehlsverlauf in eine Datei schreiben
save skipListe der Funktionen und Dateien speichern, die GDB beim Durchschreiten überspringt
save userBenutzerdefinierte Befehle speichern
set/show progress-bars enabledFortschrittsbalken ein- oder ausschalten
info proc environUmgebungsvariablen eines Linux-Prozesses anzeigen

Die neue Option --no-escape-args übergibt Programmargumente, ohne sie zu maskieren. Argumente mit Zeilenumbrüchen funktionieren jetzt, wenn sie in Anführungszeichen stehen. Bei Extended-Remote-Zielen, bei denen GDB ein Programm auf einem anderen Rechner steuert, setzt GDB die entfernte ausführbare Datei jetzt automatisch.

LWN zufolge markiert info locals jetzt Variablen, die eine andere Variable gleichen Namens verdecken. Der Befehl zeigt außerdem, wo jede Variable gespeichert ist.

Python-API und neue Zielplattformen

GDB lässt sich mit Python skripten, und Version 18.1 erweitert diese Schnittstelle. Die Ankündigung nennt eine neue Klasse gdb.Corefile für die Arbeit mit Core-Dumps. Das sind Speicherabbilder, die ein abgestürztes Programm hinterlässt. Hinzu kommen eine Klasse gdb.Style und zwei neue Ereignisregister, selected_context und corefile_changed. Disassembler-Ausgaben aus Python können jetzt Formatierungen tragen.

Zwei neue Zielplattformen kommen hinzu. GNU/Linux auf MicroBlaze, einem kleinen Prozessordesign für FPGA-Chips, wird über gdbserver unterstützt. Ebenfalls neu ist AArch64 MinGW, also Windows auf 64-Bit-Arm, gebaut mit der MinGW-Toolchain. LWN ergänzt, dass AArch64 jetzt sein Floating-Point Mode Register, kurz FPMR, unterstützt.

Was GDB 18.1 entfernt

Laut der Ankündigung streicht GDB 18.1 eine Reihe älterer Formate und Plattformen:

  • Die Debugformate stabs, mdebug und dbx
  • Das Common Trace Format
  • Ältere Versionen des Abschnitts .gdb_index, eines Index, der das Laden von Symbolen beschleunigt
  • Version 1 von DWP, dem Paketformat für geteilte Debugdateien
  • AIX 7.1
  • Das 32-Bit-Ziel s390

Auf der positiven Seite enthalten .gdb_index-Abschnitte jetzt Typsymbole. Damit findet GDB Typen schneller. Der Quellcode steht auf dem FTP-Server von GNU bereit, als 22-MiB-Datei .tar.xz oder als 37-MiB-Datei .tar.gz.

Was das für Entwickler bedeutet

Prüfen Sie vor dem Upgrade Ihre Build-Flags. Stabs ist ein Debugformat aus der Zeit vor DWARF, dem Standard, den die meisten Compiler heute erzeugen. Die meisten modernen Toolchains nutzen stabs schon lange nicht mehr. Eine alte Embedded-Toolchain oder ein Legacy-Build-Skript übergibt aber vielleicht noch -gstabs. Dann kann GDB 18.1 diese Debuginformationen nicht mehr lesen. Stellen Sie in dem Fall zuerst auf DWARF um.

Dasselbe gilt für Setups mit geteilten Debugdateien. Wenn Ihr Team noch .dwp-Dateien im alten Format Version 1 aufbewahrt, bauen Sie sie vor dem Wechsel auf 18.1 neu. Erzeugen Sie auch alle .gdb_index-Abschnitte neu, die ein altes GDB angelegt hat. Das neuere Indexformat enthält auch Typen, der Neuaufbau lohnt sich also ohnehin.

Windows-Entwickler, die GDB für Multithreading-Code aufgegeben hatten, sollten es erneut versuchen. Mit Non-Stop-Modus und Scheduler-Locking lässt sich ein einzelner Worker-Thread anhalten, ohne den Rest des Programms einzufrieren.

Wer eine .gdbinit-Datei voller eigener Befehle pflegt, kann sie mit save user sichern. Mit save history geht außerdem eine lange Debugging-Sitzung nicht verloren, wenn GDB beendet wird. Teams, die Werkzeuge auf der Python-API von GDB aufbauen, sollten sich gdb.Corefile für Skripte ansehen, die Absturz-Dumps auswerten.

Bis Ihre Linux-Distribution 18.1 paketiert, können Sie GDB aus dem Quell-Tarball auf dem FTP-Server von GNU bauen.

Quellen

  1. GDB 18.1 released! - Sourceware gdb-announce
  2. GDB 18.1 released - LWN.net

Ähnliche Artikel