GDB 11-Debugger-Version

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

Wichtigste Verbesserungen:

  • Die TUI (Text User Interface) bietet jetzt Unterstützung für Mausaktionen und die Möglichkeit, Inhalte mit dem Mausrad zu scrollen. Weiterleitung von Tastenkombinationen an GDB aktiviert, die nicht in TUI verarbeitet werden.
  • Unterstützung für den ARMv8.5 MTE-Mechanismus (MemTag, Memory Tagging Extension) hinzugefügt, der es Ihnen ermöglicht, Tags an jeden Speicherzuweisungsvorgang zu binden und beim Zugriff auf den Speicher eine Zeigerprüfung zu organisieren, die dem richtigen Tag zugeordnet sein muss. Das Remote Debug Control Protocol bietet Unterstützung für die Pakete „qMemTags“ und „QMemTags“ zum Binden von Tags an den Speicher.
  • Die Logik zum Lesen von Konfigurationsdateien wurde geändert. Die .gdbinit-Datei wird nun in der folgenden Reihenfolge überprüft: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit und $HOME/.gdbinit. Diese. Zuerst im Unterverzeichnis config und erst dann im Home-Verzeichnis.
  • Im Befehl „break […] if CONDITION“ wird die Fehlerausgabe gestoppt, wenn eine Bedingung an bestimmten Stellen ungültig ist, sofern die Bedingung in mindestens einem Fall gültig ist.
  • Unterstützung für das Debuggen von Core-Dumps hinzugefügt, die für Cygwin-Programme generiert wurden, die für die x86_64-Architektur kompiliert wurden.
  • Unterstützung für Festkommatypen sowie die Konstanten DW_AT_GNU_numerator und DW_AT_GNU_denominator hinzugefügt.
  • Einstellung „Startup-quietly on|off“ hinzugefügt; wenn „on“, ähnlich der Option „-silent“.
  • Der Befehl „ptype“ implementiert die Optionen /x“ und „/d“, um bei der Anzeige von Größen und Offsets Hexadezimal oder Dezimal zu wählen. Die Einstellung „Drucktyp Hex ein/aus“ wurde hinzugefügt, um Hexadezimalwerte in der Ausgabe des Befehls „ptype“ zu verwenden.
  • Im Befehl „inferior“ wird bei Aufruf ohne Argumente die Ausgabe des aktuellen Debugging-Objekts (inferior) bereitgestellt.
  • Die Ausgabe des Befehls „Infoquelle“ wurde überarbeitet.
  • Befehl „Stilversion Vordergrund |“ hinzugefügt Hintergrund | Intensität“, um den Stil der Versionsnummerierung zu steuern.
  • Neue Befehlszeilenoptionen hinzugefügt: „—early-init-command“ („-eix“), „—early-init-eval-command“ („-eiex“), „—qualified“ (für '-break-insert-Befehle). ) ' und '-dprintf-insert'), "--force-condition" (für die Befehle '-break-insert' und '-dprintf-insert'), "--force" (für die Befehle '-break-condition ' Befehl).
  • Mit dem Befehl „-file-list-exec-source-files“ können Sie reguläre Ausdrücke angeben, um zu verarbeitende Quelldateien herauszufiltern. Der Ausgabe wurde ein Feld „Debug-vollständig gelesen“ hinzugefügt, um den Umfang anzugeben, in dem Debugging-Informationen geladen wurden.
  • Es wurden Verbesserungen an der Python-API vorgenommen. Neue Methoden gdb.Frame.level() und db.PendingFrame.level() hinzugefügt, um die Stapelebene für ein Frame-Objekt zurückzugeben. Wenn ein Catchpoint ausgelöst wird, stellt die Python-API sicher, dass gdb.BreakpointEvent anstelle von gdb.StopEvent gesendet wird. Hinzugefügt wurden die Einstellungen „pythonignore-environment on|off“, um Umgebungsvariablen zu ignorieren, und „python dont-write-bytecode auto|on|off“, um das Schreiben von Bytecode zu deaktivieren.
  • Es wurden Verbesserungen an der Guile-API vorgenommen. Neue Prozeduren Wert-Referenzwert, Wert-RWert-Referenzwert und Wert-Konstantwert wurden hinzugefügt.
  • Zu den erforderlichen Assembly-Abhängigkeiten gehört die GMP-Bibliothek (GNU Multiple Precision Arithmetic).
  • Die Unterstützung für die ARM-Symbian-Plattform (arm*-*-symbianelf*) wurde eingestellt.

Source: opennet.ru

Kommentar hinzufügen