Die Version 11.1 des Debuggers GDB wurde vorgestellt (die erste Ausgabe der Serie 11.x, 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 Softwareplattformen (GNU/Linux, *BSD, Unix, Windows, macOS).
Wesentliche Verbesserungen:
- Die TUI (Text User Interface) hat UnterstĂŒtzung fĂŒr Mausaktionen und die Möglichkeit zur Bildlauf mit dem Mausrad hinzugefĂŒgt. Es wird eine Weiterleitung von Tastenkombinationen, die in TUI nicht bearbeitet werden, in GDB bereitgestellt.
- UnterstĂŒtzung fĂŒr den ARMv8.5 MTE (MemTag, Memory Tagging Extension) Mechanismus hinzugefĂŒgt, der es ermöglicht, Tags mit jeder Speicherzuweisung zu verbinden und bei Zugriffen auf den Speicher eine ĂberprĂŒfung des Zeigers durchzufĂŒhren, der mit dem korrekten Tag verknĂŒpft sein sollte. Im Protokoll fĂŒr Remote-Debugging wurde die UnterstĂŒtzung fĂŒr die Pakete âqMemTagsâ und âQMemTagsâ hinzugefĂŒgt, um Tags an den Speicher zu binden.
- 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. Das bedeutet, zuerst im Unterverzeichnis config und dann im Home-Verzeichnis.
- Bei dem Befehl âbreak [âŠ] if CONDITIONâ wurde die Ausgabe eines Fehlers bei unzulĂ€ssigen Bedingungen an bestimmten Stellen eingestellt, 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-Programme erstellt wurden, die fĂŒr die Architektur x86_64 kompiliert wurden.
- UnterstĂŒtzung fĂŒr festkommazahlige 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â, ist es Ă€hnlich wie die Option â-silentâ.
- Im Befehl âptypeâ wurden die Optionen /x und /d implementiert, um hexadezimale oder dezimale Werte bei der Ausgabe von GröĂen und Offsets auszuwĂ€hlen. Eine Einstellung âprint type hex on|offâ wurde hinzugefĂŒgt, um hexadezimale Werte in der Ausgabe des Befehls âptypeâ zu verwenden.
- Im Befehl âinferiorâ wird bei einem Aufruf ohne Argumente das aktuelle Debugging-Objekt (inferior) ausgegeben.
- Die Ausgabe des Befehls âinfo sourceâ wurde ĂŒberarbeitet.
- Der Befehl âstyle version foreground | background | intensityâ zur Steuerung des Stils der Versionsnummerierung hinzugefĂŒgt.
- Neue Optionen fĂŒr die Befehlszeile 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 Team "-file-list-exec-source-files" ist die Angabe von regulĂ€ren AusdrĂŒcken erlaubt, um die verarbeiteten Quelldateien zu filtern. Ein Feld âdebug-fully-readâ wurde hinzugefĂŒgt, um ĂŒber den Grad der Ladeinformationen zu informieren.
- Verbesserungen im Python-API wurden vorgenommen. Neue Methoden gdb.Frame.level() und db.PendingFrame.level() wurden hinzugefĂŒgt, um die Stack-Ebene fĂŒr das Frame-Objekt zurĂŒckzugeben. Bei der Auslösung eines Haltepunkts (catchpoint) im Python-API wird gdb.BreakpointEvent anstelle von gdb.StopEvent ĂŒbermittelt. Es wurden Einstellungen âpython ignore-environment on|offâ zum Ignorieren von Umgebungsvariablen und âpython dont-write-bytecode auto|on|offâ zum Deaktivieren der Bytecode-Aufzeichnung hinzugefĂŒgt.
- Verbesserungen im Guile-API wurden vorgenommen. Neue Prozeduren value-reference-value, value-rvalue-reference-value und value-const-value wurden hinzugefĂŒgt.
- Die GMP-Bibliothek (GNU Multiple Precision Arithmetic) wurde zu den Pflicht-AbhĂ€ngigkeitsversionen hinzugefĂŒgt.
- Die UnterstĂŒtzung der ARM Symbian-Plattform (arm*-*-symbianelf*) wurde eingestellt.
Quelle: opennet.ru
