Release des Debuggers GDB 13

Die Veröffentlichung des Debuggers GDB 13.1 wurde vorgestellt (die erste Ausgabe der Serie 13.x, die Version 13.0 wurde fĂŒr die Entwicklung verwendet). 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 Softwareplattformen (GNU/Linux, *BSD, Unix, Windows, macOS).

Wesentliche Verbesserungen:

  • Die UnterstĂŒtzung fĂŒr die AusfĂŒhrung des Debuggers und von GDBserver auf architekturen GNU/Linux/LoongArch und GNU/Linux/CSKY wurde hinzugefĂŒgt.
  • Die UnterstĂŒtzung fĂŒr den asynchronen Betrieb (async) auf der Windows-Plattform wurde implementiert.
  • FĂŒr die Plattform FreeBSD wurden die UnterstĂŒtzung fĂŒr TLS (Thread Local Storage)-Variablen auf ARM- und AArch64-Architekturen sowie die Möglichkeit zur Verwendung von Hardware-Stopppunkten (watchpoint) auf AArch64 hinzugefĂŒgt.
  • In der GNU/Linux-Umgebung auf LoongArch-Systemen wurde die UnterstĂŒtzung fĂŒr Gleitkomma-Berechnungen hinzugefĂŒgt.
  • Neue Befehle wie „maintenance set ignore-prologue-end-flag|libopcodes-styling“ und „maintenance print frame-id“ sowie Befehle zur Steuerung des Stils der disassemblierten Ausgabe (set style disassembler *) wurden implementiert.
  • Die Befehle „set print nibbles [on|off]“ und „show print nibbles“ zur Steuerung der Anzeige binĂ€rer Werte in vierbytegruppen wurden hinzugefĂŒgt.
  • Verbesserungen der Python-API wurden vorgenommen. Eine API zum Disassemblieren von Anweisungen, der Typ gdb.BreakpointLocation, sowie die Funktionen gdb.format_address, gdb.current_language und gdb.print_options wurden hinzugefĂŒgt.
  • In der GDB/MI-Schnittstelle wurde die erste Version der MI-Schnittstelle als veraltet erklĂ€rt, die in der GDB 14-Version entfernt wird.
  • In ELF-Dateien wurde die UnterstĂŒtzung fĂŒr Debugging-Sektionen, die mit dem zstd-Algorithmus komprimiert sind, hinzugefĂŒgt.
  • Neue eingebaute Variablen wurden hinzugefĂŒgt: $_inferior_thread_count, $_hit_bpnum, $_hit_locno.
  • Das Ausgabeformat der Befehle ‘disassemble /r’ und ‘record instruction-history /r’ wurde an die Ausgabe von objdump angepasst. Ein Modus „/b“ wurde hinzugefĂŒgt, um das alte Format wiederherzustellen.
  • Im TUI (Text User Interface) wurde die Stilisierung des Quell- und Assemblercodes, der vom aktuellen Positionsindikator hervorgehoben wird, deaktiviert.
  • Es wurde die Möglichkeit geschaffen, den Befehl „document“ zur Dokumentation benutzerdefinierter Befehle zu verwenden.
  • Es wurde die Möglichkeit hinzugefĂŒgt, Dumps mit Tags von Speicherdaten zu erstellen, die beim Einsatz des ARMv8.5 MTE (MemTag, Memory Tagging Extension)-Mechanismus verwendet werden, der es ermöglicht, Tags mit jeder Speicherzuweisungsoperation zu verknĂŒpfen und bei Speicherzugriffen die Pointer-PrĂŒfung sicherzustellen, die mit dem richtigen Tag verknĂŒpft sein muss.
  • Die UnterstĂŒtzung fĂŒr den KompatibilitĂ€tsmodus mit DBX 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. Stattdessen sind die Befehle „set/show debug solib“ zu verwenden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4