Die Version 15.1 des GDB-Debuggers wurde veröffentlicht (erstes Release der Serie 15.x, der Branch 15.0 wurde für die Entwicklung verwendet). GDB unterstützt die Quellcode-Debugging für eine Vielzahl von Programmiersprachen (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust usw.) auf verschiedenen Hardware- (i386, amd64, ARM, Power, Sparc, RISC-V usw.) und Softwareplattformen (GNU/Linux, *BSD, Unix, Windows, macOS).
Wesentliche Verbesserungen:
- Für den Bau von GDB und GDBserver ist jetzt ein Compiler erforderlich, der C++17 unterstützt (mindestens GCC 9).
- Verbesserungen in der Python-API wurden vorgenommen. Es wurden Funktionen gdb.notify_mi, gdb.missing_debug.register_handler und gdb.interrupt, die Klasse gdb.missing_debug.MissingDebugInfo, das Modul db.missing_debug, die Attribute gdb.Value.bytes und gdb.InferiorThread.ptid_string sowie die Konstanten gdb.SYMBOL_TYPE_DOMAIN, gdb.SYMBOL_FUNCTION_DOMAIN und gdb.SEARCH_*_DOMAIN hinzugefügt. In den Objekten gdb.Inferior und gdb.InferiorThread wurde die Möglichkeit implementiert, benutzerdefinierte Attribute hinzuzufügen.
- Die Implementierung des DAP (Debugger Adapter Protocol) wurde fortgesetzt. Der Befehl "set debug dap-log-level" wurde hinzugefügt, um die Protokollierung für DAP zu steuern. Die Unterstützung für die Anfrage "cancel" und die Möglichkeit zur Erstellung des Events "process" wurden hinzugefügt.
- Die Unterstützung für die Pakete QThreadOptions und qIsAddressTagged wurde im Remote-Debugging-Protokoll hinzugefügt, sowie der Befehl "set/show remote thread-options-packet".
- Die Unterstützung der Optionen «—remote-debug» und «—event-loop-debug» sowie der Befehle ‘monitor set remote-debug’ und ‘monitor set event-loop-debug’ wurde in GDBserver eingestellt. An deren Stelle können im Parameter «—debug» alle Debugging-Komponenten in einer durch Kommas getrennten Liste (all, threads, event-loop und remote) angegeben werden. Eine ähnliche Möglichkeit zur Angabe der Komponenten wurde im Befehl ‘monitor set debug’ implementiert.
- Informationen zur main-Funktion wurden in den Index aufgenommen, was den Start mit einigen großen ausführbaren Dateien beschleunigt.
- Die MPX-Befehle «show/set mpx bound» wurden als veraltet erklärt und die Unterstützung, die Intel dafür seit 2019 bereitgestellt hat, wurde eingestellt.
- Neue Befehle hinzugefügt:
- «set/show direct-call-timeout»
- «set/show indirect-call-timeout»
- «set/show unwind-on-timeout on|off»
- «set/show unwind-on-signal on|off»
- In den Befehlen «gcore» und «generate-core-file» wurde die Unterstützung zur Optimierung der Speicherung leerer Bereiche in den erzeugten Core-Dateien hinzugefügt.
Quelle: opennet.ru
