Veröffentlichung des Debuggers GDB 13

Die Freigabe des Debuggers GDB 13.1 wird vorgestellt (die erste Version der Reihe 13.x, der Branch 13.0 wurde für die Entwicklung verwendet). GDB unterstützt die Fehlersuche 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-Plattformen (i386, amd64, ARM, Power, Sparc, RISC-V usw.) und Software-Plattformen (GNU/Linux, *BSD, Unix, Windows, macOS).

Wesentliche Verbesserungen:

  • Die Unterstützung für die Ausführung des Debuggers und GDBserver auf den Architekturen GNU/Linux/LoongArch und GNU/Linux/CSKY wurde hinzugefügt.
  • Die Unterstützung für den Betrieb unter Windows im asynchronen Modus (async) wurde implementiert.
  • Für die Plattform FreeBSD wurden auf den Architekturen ARM und AArch64 Unterstützung für TLS-Variablen (Thread Local Storage) hinzugefügt, und für die Architektur AArch64 wurde die Möglichkeit zur Nutzung von Hardware-Stopppunkten (Watchpoints) bereitgestellt.
  • In der GNU/Linux-Umgebung auf LoongArch-Systemen wurde die Unterstützung für Fließkomma-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 von Binärwerten in vier Byte großen Gruppen wurden hinzugefügt.
  • Verbesserungen im Python API wurden implementiert. Eine API zum Disassemblieren von Instruktionen wurde hinzugefügt, sowie der Typ gdb.BreakpointLocation und die Funktionen gdb.format_address, gdb.current_language und gdb.print_options.
  • Die erste Version des GDB/MI-Programmierschnitts wurde als veraltet deklariert und wird in der GDB 14-Version entfernt.
  • In ELF-Dateien wurde die Unterstützung für Debugging-Sektionen hinzugefügt, die mit dem zstd-Algorithmus komprimiert wurden.
  • Neue integrierte 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. Um das alte Format wiederherzustellen, wurde der Modus ‘/b’ hinzugefügt.
  • Die Stilgebung des Quell- und Assemblercodes, der durch einen aktuellen Positionsindikator hervorgehoben wird, wurde im TUI (Text User Interface) deaktiviert.
  • Die Möglichkeit wurde bereitgestellt, den Befehl ‘document’ zur Dokumentation benutzerdefinierter Befehle zu verwenden.
  • Die Möglichkeit zur Erstellung von Dumps mit den Tags für den Speicher wurde hinzugefügt, die beim Einsatz des ARMv8.5 MTE-Mechanismus (MemTag, Memory Tagging Extension) verwendet werden. Dieser ermöglicht es, Tags mit jeder Speicherzuweisung zu verknüpfen und bei Zugriffen auf den Speicher eine Pointer-Überprüfung durchzuführen, die mit dem korrekten Tag verbunden sein muss.
  • Die Unterstützung des Kompatibilitätsmodus mit DBX wurde eingestellt.
  • Die Unterstützung für die Verwendung von Python 2 bei der Kompilierung 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 sollten die Befehle „set/show debug solib“ verwendet werden.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster