Die Veröffentlichung des Debuggers GDB 16.1 (erster Release der Reihe 16.x, Branch 16.0 wurde für die Entwicklung verwendet) wurde vorgestellt. GDB unterstützt das Debugging auf Quellcode-Ebene für eine breite Palette von Programmiersprachen (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust usw.) auf verschiedenen Hardwareplattformen (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch usw.) und Softwareplattformen (GNU/Linux, *BSD, Unix, Windows, macOS).
Die bemerkenswertesten Verbesserungen:
- Für Linux-Umgebungen auf Systemen mit LoongArch-Architektur wurde die Unterstützung für Aufzeichnung und Wiederholung (record/replay) implementiert.
- Für getaggte Zeiger, bei denen einige Bits zur Speicherung zusätzlicher Daten verwendet werden, wurde die Unterstützung für Haltepunkte implementiert, die ausgelöst werden, wenn Daten verändert werden (watchpoint).
- Auf Systemen mit AArch64-Architektur wurde die Unterstützung für das Debugging des MTE-Schutzmechanismus (Memory Tagging Extension) implementiert. MTE ermöglicht es, Tags an Speicherbereiche zu binden und die Korrektheit der Verwendung von Zeigern zu überprüfen, um die Ausnutzung von Schwachstellen zu verhindern, die durch fehlerhaften Umgang mit dem Speicher verursacht werden.
- Ein Bash-Skript gstack wurde hinzugefügt, das GDB verwendet, um die Stack-Trace von laufenden Prozessen auszugeben.
- Für Haltepunkte im Zustand „pending“ werden die Schlüsselwörter „thread“ und „task“ jetzt beim Erstellen des Haltepunktes und nicht nach dem Verlassen des Wartezustands analysiert.
- Die Zuweisung von Haltepunkten, die an Threads gebunden sind, erfolgt jetzt nur in dem Bereich des Programms, in dem der notwendige Thread ausgeführt wird.
- Die Möglichkeiten der Nachverfolgung auf Intel-Prozessoren wurden erweitert: Bei der Schritt-für-Schritt-Debugging sowie in den Befehlen „record instruction-history“ und „record function-call-history“ werden asynchrone Ereignisse und Daten ausgegeben, die bei der Verwendung der ptwrite-Anweisung gespeichert werden.
- Die Python-API wurde um das Modul gdb.missing_objfile, das Ereignis gdb.tui_enabled, das Attribut gdb.Symbol.is_artificial und die Funktion gdb.record.clear erweitert.
- Die Funktionen des Debugger-Adapter-Protokolls (DAP) wurden in Bezug auf die Verarbeitung der Anfragen „scopes“, „launch“ und „attach“ erweitert.
- Zum Protokoll der Remote-Debugging wurde die Unterstützung der Pakete „vFile:stat“ und „x addr,length“ hinzugefügt.
- Die Unterstützung für QNX Neutrino, Nios II und Intel MPX wurde eingestellt.
Quelle: opennet.ru
