Release des Debuggers GDB 11

Die Veröffentlichung des Debuggers GDB 11.1 wurde vorgestellt (die erste Version der Reihe 11.x, der Branch 11.0 wurde für die Entwicklung verwendet). GDB unterstützt das Debugging auf Quellcode-Ebene für eine Vielzahl von Programmiersprachen (Ada, C, C++, Objective-C, Pascal, Go, Rust usw.) auf verschiedenen Hardware- (i386, amd64, ARM, Power, Sparc, RISC-V usw.) und Software-Plattformen (GNU/Linux, *BSD, Unix, Windows, macOS).

Wesentliche Verbesserungen:

  • Die Benutzeroberfläche TUI (Textbenutzeroberfläche) hat Unterstützung für Mausaktionen und die Möglichkeit zur Bildlaufsteuerung mit dem Mausrad erhalten. GDB ermöglicht das Durchleiten von Tastenkombinationen, die in TUI nicht verarbeitet werden.
  • Die Unterstützung für den ARMv8.5 MTE-Mechanismus (MemTag, Memory Tagging Extension) wurde hinzugefügt, der es ermöglicht, Tags mit jeder Speicherzuweisung zu verknüpfen und eine Überprüfung des Zeigers beim Zugriff auf den Speicher durchzuführen, die mit dem richtigen Tag verknüpft sein muss. Im Protokoll für die Fernsteuerung des Debuggers wurde die Unterstützung für die Pakete „qMemTags“ und „QMemTags“ zur Verknüpfung von Tags mit dem Speicher entfernt.
  • Die Logik zum Lesen von Konfigurationsdateien wurde geändert. Die Datei .gdbinit wird nun in folgender Reihenfolge überprüft: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit und $HOME/.gdbinit. D.h. zunächst im Unterverzeichnis config und dann im Home-Verzeichnis.
  • In dem Befehl „break […] if CONDITION“ wird die Ausgabe von Fehlern bei ungültigen Bedingungen an bestimmten Stellen gestoppt, wenn die Bedingung in mindestens einem Fall zulässig ist.
  • Unterstützung für das Debuggen von Core-Dumps hinzugefügt, die für Cygwin-Anwendungen, die für die Architektur x86_64 kompiliert wurden, generiert wurden.
  • Unterstützung für festkomma-basierte Typen sowie die Konstanten DW_AT_GNU_numerator und DW_AT_GNU_denominator hinzugefügt.
  • Die Einstellung „startup-quietly on|off“ hinzugefügt; wenn „on“, entspricht sie der Option „-silent“.
  • Im Befehl „ptype“ wurden die Optionen „/x“ und „/d“ implementiert, um bei der Ausgabe von Größen und Offsets zwischen hexadezimaler oder dezimaler Darstellung zu wählen. Eine Einstellung „print type hex on|off“ für die Verwendung von hexadezimalen Werten in der Ausgabe des Befehls 'ptype' wurde hinzugefügt.
  • Im Befehl „inferior“ wird beim Aufruf ohne Argumente das aktuelle Debugging-Objekt (inferior) ausgegeben.
  • Die Ausgabe des Befehls „info source“ wurde überarbeitet.
  • Der Befehl „style version foreground | background | intensity“ wurde hinzugefügt, um den Stil der Versionsnummerierung zu steuern.
  • Neue Befehlszeilenoptionen hinzugefügt: «—early-init-command» («-eix»), «—early-init-eval-command» («-eiex»), «—qualified» (für die Befehle ‘-break-insert’ und ‘-dprintf-insert’), «—force-condition» (für die Befehle ‘-break-insert’ und ‘-dprintf-insert’), «—force» (für den Befehl ‘-break-condition’).
  • Im Befehl «-file-list-exec-source-files» ist die Angabe von regulären Ausdrücken erlaubt, um die verarbeiteten Quellcode-Dateien zu filtern. Ein Feld ‘debug-fully-read’ wurde zur Ausgabe hinzugefügt, um über den Grad der geladenen Debugging-Informationen zu informieren.
  • Verbesserungen im Python API. Neue Methoden gdb.Frame.level() und db.PendingFrame.level() hinzugefügt, um die Stackebene für das Frame-Objekt zurückzugeben. Bei Auslösung eines Haltepunktes (catchpoint) im Python API wird nun gdb.BreakpointEvent anstelle von gdb.StopEvent übergeben. Einstellungen wie «python ignore-environment on|off» zum Ignorieren von Umgebungsvariablen und «python dont-write-bytecode auto|on|off» zum Deaktivieren der Bytecode-Schreibung wurden hinzugefügt.
  • Verbesserungen im Guile API. Neue Prozeduren value-reference-value, value-rvalue-reference-value und value-const-value hinzugefügt.
  • Die GMP-Bibliothek (GNU Multiple Precision Arithmetic) wurde in die erforderlichen Build-Abhängigkeiten aufgenommen.
  • Die Unterstützung für die ARM Symbian-Plattform (arm*-*-symbianelf*) wurde eingestellt.

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