Veröffentlichung des Debuggers GDB 14

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

60GB SSD 8Gb DDR4