Die Veröffentlichung des Debuggers GDB 14.1 (die erste Version der Serie 14.x, Branch 14.0 wurde fĂŒr die Entwicklung verwendet) wurde vorgestellt. GDB unterstĂŒtzt das Debugging auf Quellcode-Ebene 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 Software-Plattformen (GNU/Linux, *BSD, Unix, Windows, macOS).
Wesentliche Verbesserungen:
- Der Code wurde auf die Verwendung des Standards C++17 umgestellt. Zum Erstellen von GDB wird nun ein Compiler benötigt, der C++17 unterstĂŒtzt (mindestens GCC 9).
- Im Index wurde die Information ĂŒber die Funktion main hinzugefĂŒgt, was den Start bei der Verwendung 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 (die minimal unterstĂŒtzte Version von AIX ist die Veröffentlichung 7.1).
- Es wurde eine erste integrierte UnterstĂŒtzung fĂŒr das DAP-Protokoll (Debugger Adapter Protocol) hinzugefĂŒgt.
- Die UnterstĂŒtzung fĂŒr die Umgebungsvariable NO_COLOR wurde hinzugefĂŒgt.
- Es wurde eine erste UnterstĂŒtzung fĂŒr Ganzzahltypen mit mehr als 64 Bit hinzugefĂŒgt.
- Die UnterstĂŒtzung fĂŒr Haltepunkte, die an bestimmten Debugging-Objekten (bei der Fehlersuche mehrerer Prozesse) gebunden sind, wurde hinzugefĂŒgt.
- Die Funktion â$_shellâ wurde hinzugefĂŒgt, um einen Befehl in der Befehlszeile auszufĂŒhren und das Ergebnis zurĂŒckzugeben.
- Verbesserungen im Python-API wurden vorgenommen:
- Die Klassen gdb.Thread, gdb.unwinder.FrameId und gdb.ValuePrinter wurden hinzugefĂŒgt.
- Die Attribute gdb.Inferior.arguments, gdb.Inferior.main_name, gdb.Breakpoint.inferior, gdb.Progspace.symbol_file, gdb.Progspace.executable_filename wurden hinzugefĂŒgt.
- Die Funktionen gdb.execute_mi(COMMAND, [ARG]âŠ), 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. Die Ereignisse gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent, gdb.NewProgspaceEvent, gdb.FreeProgspaceEvent wurden hinzugefĂŒgt.
- Die Möglichkeit, einzelne Funktionen fĂŒr Remote-Debugging-Ziele zu aktivieren oder zu deaktivieren, wurde hinzugefĂŒgt.
- Die UnterstĂŒtzung fĂŒr die Architektur AArch64 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 Spezifikation Ada 2022 wurde verbessert.
- In den Befehl âlistâ wurde die UnterstĂŒtzung des Parameters â.â fĂŒr die Anzeige des Standorts des Programmablaufs im aktuellen Stapelrahmen hinzugefĂŒgt.
- In die Befehle printf und dprintf wurde der Formatbezeichner â%Vâ eingefĂŒgt.
- Im printf-Befehl ist die GröĂe der Zeichenkette, die aus dem Debugging-Objekt extrahiert wird, auf den Wert der Einstellung âmax-value-sizeâ begrenzt.
- Eine Build-Option ââadditional-debug-dirs=PATHâ wurde hinzugefĂŒgt, die einen Standardwert fĂŒr das Register âdebug-file-directoryâ festlegt.
- Ein neuer Befehl âinfo mainâ wurde hinzugefĂŒgt, um das Symbol main zu extrahieren, das auf den Einstiegspunkt in das Programm verweist.
- Neue Befehle wurden hinzugefĂŒgt:
- âDebug-Breakpoint setzen|lösenâ
- âTUI-Mausereignisse [ein|aus] setzenâ
- âImmer-CFT lesen setzen ein|ausâ
- âWartung Druck Befehl-instruction [ N ]â
- âWartung Info Rahmen-Unwinderâ
- âWartung warte auf Index-Cacheâ
Quelle: opennet.ru
