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
