GDB 13-Debugger-Version

Die Veröffentlichung des GDB 13.1-Debuggers wurde vorgestellt (die erste Veröffentlichung der 13.x-Serie, der 13.0-Zweig wurde für die Entwicklung verwendet). GDB unterstützt das Debuggen auf Quellenebene für eine Vielzahl von Programmiersprachen (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust usw.) auf verschiedener Hardware (i386, amd64). , ARM, Power, Sparc, RISC-V usw.) und Softwareplattformen (GNU/Linux, *BSD, Unix, Windows, macOS).

Wichtigste Verbesserungen:

  • Unterstützung für die Ausführung des Debuggers und des GDBservers auf GNU/Linux/LoongArch- und GNU/Linux/CSKY-Architekturen hinzugefügt.
  • Unterstützung für das Arbeiten auf der Windows-Plattform im asynchronen Modus (async) wurde implementiert.
  • Auf der FreeBSD-Plattform wurde Unterstützung für TLS-Variablen (Thread Local Storage) für die ARM- und AArch64-Architekturen hinzugefügt und die Möglichkeit, Hardware-Haltepunkte (Watchpoint) zu verwenden, wurde für die AArch64-Architektur bereitgestellt.
  • In der GNU/Linux-Umgebung auf LoongArch-Systemen wurde Unterstützung für Gleitkommaberechnungen hinzugefügt.
  • Neue Befehle „maintenance setignore-prologue-end-flag|libopcodes-styling“ und „maintenance print frame-id“ sowie Befehle zur Steuerung des Stils der disassemblierten Ausgabe (set style disassembler *) implementiert.
  • Die Befehle „set print nibbles [on|off]“ und „show print nibbles“ wurden hinzugefügt, um die Anzeige von Binärwerten in Vier-Byte-Gruppen zu steuern.
  • An der Python-API wurden Verbesserungen vorgenommen. Eine API zum Zerlegen von Anweisungen wurde hinzugefügt, der Typ gdb.BreakpointLocation wurde implementiert und die Funktionen gdb.format_address, gdb.current_lingual und gdb.print_options wurden hinzugefügt.
  • Die erste Version der GDB/MI-Verwaltungsschnittstelle ist veraltet und wird in GDB 14 entfernt.
  • Unterstützung für Debug-Abschnitte hinzugefügt, die mit dem ZSTD-Algorithmus in ELF-Dateien komprimiert wurden.
  • Neue integrierte Variablen hinzugefügt: $_inferior_thread_count, $_hit_bpnum, $_hit_locno.
  • Das Ausgabeformat der Befehle „disassemble /r“ und „record command-history /r“ wurde angepasst, um der Ausgabe von objdump zu entsprechen. Um das alte Format wiederherzustellen, wurde der Modus „/b“ hinzugefügt.
  • In der TUI (Text User Interface) ist die Formatierung von Quell- und Assemblercode, die durch die aktuelle Positionsanzeige hervorgehoben wird, deaktiviert.
  • Mit dem Befehl „document“ können Sie Benutzerbefehle dokumentieren.
  • Es wurde die Möglichkeit hinzugefügt, Dumps mit Speicher-Tag-Daten zu erstellen, die bei Verwendung des ARMv8.5 MTE-Mechanismus (MemTag, Memory Tagging Extension) verwendet werden, der es Ihnen ermöglicht, Tags an jeden Speicherzuweisungsvorgang zu binden und eine Zeigerprüfung beim Zugriff auf den Speicher zu organisieren, was sein muss mit dem richtigen Tag verknüpft.
  • Der DBX-Kompatibilitätsmodus wurde eingestellt.
  • Die Unterstützung für die Erstellung mit Python 2 wurde eingestellt.
  • Die Befehle „set debug aix-solib on|off“, „show debug aix-solib“, „set debug solib-frv on|off“ und „show debug solib-frv“ wurden entfernt und die Befehle „set/show debug“ sollte stattdessen solib verwendet werden.“

Source: opennet.ru

Kommentar hinzufügen