Die neue Version des Debuggers GDB 14.1 wurde veröffentlicht (dies ist der erste Release der Serie 14.x, die Version 14.0 wurde fĂŒr die Entwicklung genutzt). GDB unterstĂŒtzt das Debugging auf Quellcodeebene 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:
- Der Code wurde auf die Verwendung des Standards C++17 umgestellt. Zum Bau von GDB ist jetzt ein Compiler erforderlich, der C++17 unterstĂŒtzt (mindestens GCC 9).
- Informationen zur main-Funktion wurden in den Index aufgenommen, was den Start mit einigen groĂen ausfĂŒhrbaren Dateien beschleunigt.
- Die UnterstĂŒtzung fĂŒr die Betriebssysteme AIX 4.x, 5.x und 6.x wurde eingestellt (als minimal unterstĂŒtzte Version von AIX wird Release 7.1 ausgewiesen).
- AnfĂ€ngliche integrierte UnterstĂŒtzung fĂŒr das DAP (Debugger Adapter Protocol) wurde hinzugefĂŒgt.
- UnterstĂŒtzung fĂŒr die Umgebungsvariable NO_COLOR wurde hinzugefĂŒgt.
- AnfĂ€ngliche UnterstĂŒtzung fĂŒr Ganzzahltypen gröĂer als 64 Bit wurde hinzugefĂŒgt.
- UnterstĂŒtzung fĂŒr Haltepunkte, die an einzelnen Debugging-Objekten festgebunden sind (bei der Fehlerbehebung mit mehreren Prozessen), wurde eingefĂŒhrt.
- Die Funktion â$_shellâ wurde hinzugefĂŒgt, um einen Befehl in der Kommandozeile auszufĂŒhren und das Ergebnis zurĂŒckzugeben.
- Verbesserungen der Python-API wurden vorgenommen:
- Die Klassen gdb.Thread, gdb.unwinder.FrameId und gdb.ValuePrinter wurden hinzugefĂŒgt.
- Es wurden Attribute wie gdb.Inferior.arguments, gdb.Inferior.main_name, gdb.Breakpoint.inferior, gdb.Progspace.symbol_file, gdb.Progspace.executable_filename hinzugefĂŒgt.
- Die Funktionen gdb.execute_mi(COMMAND, [ARG]âŠ) und gdb.block_signals() wurden hinzugefĂŒgt.
- Die Methoden gdb.Frame.static_link, gdb.Inferior âclear_envâ, âset_envâ und âunset_envâ, gdb.Type âis_array_likeâ und âis_string_likeâ, gdb.Value âassignâ, gdb.Value âto_arrayâ, gdb.Progspace âobjfile_for_addressâ, gdb.LazyString __str__ wurden hinzugefĂŒgt. Ereignisse wie gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent, gdb.NewProgspaceEvent, gdb.FreeProgspaceEvent wurden hinzugefĂŒgt.
- Die Möglichkeit, bestimmte Funktionen fĂŒr entfernte Debugging-Ziele ein- und auszuschalten, wurde hinzugefĂŒgt.
- Die UnterstĂŒtzung fĂŒr die AArch64-Architektur wurde verbessert. UnterstĂŒtzung fĂŒr die Erweiterungen SME (Scalable Matrix Extension) und SME2 wurde hinzugefĂŒgt.
- Die UnterstĂŒtzung fĂŒr die Programmiersprache Ada und die Ada 2022-Spezifikation wurde verbessert.
- Der Befehl âlistâ unterstĂŒtzt nun das Argument â.â zur Anzeige des Standorts des AusfĂŒhrungsorts im aktuellen Stapelrahmen.
- Den Befehlen printf und dprintf wurde der Formatbezeichner â%Vâ hinzugefĂŒgt.
- Im Befehl printf ist die GröĂe des aus dem Debugging-Objekt extrahierten Strings auf den Wert der Einstellung âmax-value-sizeâ begrenzt.
- Die neue Option "âadditional-debug-dirs=PATH" wurde hinzugefĂŒgt, um den Standardwert fĂŒr das Parameter âdebug-file-directoryâ festzulegen.
- Der neue Befehl âinfo mainâ wurde hinzugefĂŒgt, um das Hauptsymbol auszulesen, das den Einstiegspunkt im Programm angibt.
- Neue Befehle hinzugefĂŒgt:
- "set debug breakpoint on|off"
- "set tui mouse-events [on|off]"
- "set always-read-ctf on|off"
- "maintenance print record-instruction [ N ]"
- "maintenance info frame-unwinders"
- "maintenance wait-for-index-cache"
Quelle: opennet.ru
