Die Veröffentlichung des GDB 12.1-Debuggers wurde vorgestellt (die erste Veröffentlichung der 12.x-Serie, der 12.0-Zweig wurde für die Entwicklung verwendet). GDB unterstützt das Debuggen auf Quellebene für eine Vielzahl von Programmiersprachen (Ada, C, C++, Objective-C, Pascal, Go, Rust usw.) auf verschiedener Hardware (i386, amd64, ARM, Power, Sparc, RISC). - V usw.) und Softwareplattformen (GNU/Linux, *BSD, Unix, Windows, macOS).
Wichtigste Verbesserungen:
- Standardmäßig ist der Multithread-Modus zum Laden von Debugging-Symbolen aktiviert, was den Start beschleunigt.
- Verbesserte Unterstützung für C++-Vorlagen.
- Unterstützung für das Arbeiten auf der FreeBSD-Plattform im asynchronen Modus (async) wurde implementiert.
- Es ist möglich, die Verwendung von GNU Source Highlight zu deaktivieren und die Pygments-Bibliothek für die Syntaxhervorhebung zu verwenden.
- Der Befehl „clone-inferior“ prüft, ob die TTY-, CMD- und ARGS-Einstellungen vom ursprünglichen Debug-Objekt (inferior) auf das neue Debug-Objekt kopiert werden. Es stellt außerdem sicher, dass alle Änderungen an Umgebungsvariablen, die mit den Befehlen „Set Environment“ oder „Unset Environment“ vorgenommen werden, in das neue Debug-Objekt kopiert werden.
- Der Befehl „print“ unterstützt das Drucken von Gleitkommazahlen und gibt das Format des zugrunde liegenden Werts an, z. B. Hexadezimal („/x“).
- Unterstützung für die Ausführung des Debuggers und des GDBservers auf der GNU/Linux/OpenRISC-Architektur (or1k*-*-linux*) hinzugefügt. Unterstützung für das Debuggen von Anwendungen für die GNU/Linux/LoongArch-Zielplattform (loongarch*-*-linux*) hinzugefügt. Die Unterstützung für die S+core-Zielplattform (score-*-*) wurde eingestellt.
- GDB 12 wird als letzte Version angekündigt, die das Erstellen mit Python 2 unterstützt.
- Veraltet und wird im GDB 13 DBX-Kompatibilitätsmodus entfernt.
- Die GDB/MI-Verwaltungs-API ermöglicht die Verwendung des Befehls „-add-inferior“ ohne Parameter oder mit dem Flag „--no-connection“, um eine Verbindung vom aktuellen Debug-Objekt zu erben oder ohne Verbindung auszuführen.
- Es wurden Verbesserungen an der Python-API vorgenommen. Es besteht die Möglichkeit, GDB/MI-Befehle in Python zu implementieren. Neue Ereignisse gdb.events.gdb_exiting und gdb.events.connection_removed, Funktion gdb.Architecture.integer_type(), Objekt gdb.TargetConnection, Eigenschaft gdb.Inferior.connection, Methode gdb.RemoteTargetConnection.send_packet und Attribute gdb.InferiorThread.details hinzugefügt. gdb.Type.is_scalar und gdb.Type.is_signed.
Source: opennet.ru