Debugger-Version , der die Debugging auf Quellcode-Ebene für eine Vielzahl von Programmiersprachen (Ada, C, C++, Objective-C, Pascal, Go usw.) auf verschiedenen Hardware- (i386, amd64, ARM, Power, Sparc, RISC-V usw.) und Software-Plattformen (GNU/Linux, *BSD, Unix, Windows, macOS) unterstützt.
Hauptmerkmale :
- In den CLI- und TUI-Schnittstellen wurde die Möglichkeit zur Festlegung des Terminalstils implementiert (Befehl „set style“ hinzugefügt). Bei Vorhandensein von GNU Highlight wird die Syntaxhervorhebung für den Quelltext unterstützt;
- Es wurde experimentelle Unterstützung für die Kompilierung und Einfügung von C++-Quellcode in einen von GDB gesteuerten Prozess implementiert
(). Für den Betrieb ist mindestens die Version GCC 7.1 erforderlich, die mit libcp1.so kompiliert wurde; - In GDB und GDBserver wurde die Unterstützung von IPv6 hinzugefügt. Adressen im IPv6-Format sollten im Format „[ADDRESS]:PORT“ angegeben werden;
- Für Zielsysteme von RISC-V wurde die Unterstützung für die Zielbeschreibung im XML-Format hinzugefügt ();
- Auf der FreeBSD-Plattform wurde die Unterstützung für das Setzen von Haltepunkten
(Catchpoint) bei Systemaufrufen, unter Verwendung ihrer spezifischen Aliasnamen für verschiedene ABI, implementiert (zum Beispiel steht für „kevent“ der Alias „freebsd11_kevent“ für das ältere ABI zur Verfügung); - In den Befehl „target remote“ wurde die Unterstützung für Unix-Sockets (Unix-Domain-Socket) hinzugefügt;
- Die Möglichkeit zur Anzeige aller von einem Prozess geöffneten Dateien wurde hinzugefügt (Befehl „info proc files“);
- Die Möglichkeit zur automatischen Speicherung von DWARF-Symbolindizes auf der Festplatte zur Beschleunigung des späteren Ladens derselben ausführbaren Datei wurde implementiert;
- In GDBserver für die PowerPC GNU/Linux-Plattform wurde die Unterstützung für den Zugriff auf die Register PPR, DSCR, TAR, EBB/PMU und HTM hinzugefügt;
- Es wurden neue Befehle „set/show debug compile-cplus-types“ und
„set/show debug skip“ zur Konfiguration der Ausgaben über die Typumwandlungen von C++ und Informationen über übersprungene Dateien und Funktionen hinzugefügt; - Neue Befehle „frame apply COMMAND“, „taas COMMAND“, „faas COMMAND“, „tfaas COMMAND“ zum Anwenden von Befehlen auf Stackrahmen und Threads wurden hinzugefügt;
- Verbesserungen wurden in den Befehlen „frame“, „select-frame“, „info frame“
— „info functions“, „info types“, „info variables“, „info thread“, „info proc“ durchgeführt; - Beim Start im Batchmodus gibt GDB nun den Fehlercode 1 zurück, wenn die letzte Ausführung fehlschlägt;
- Die Möglichkeit zur Erstellung von GDB mit dem bereitgestellten GCC-Detektor für undefiniertes Verhalten (Undefined Behavior Sanitizer) wurde hinzugefügt;
- Die Basiskonfigurationen (native configuration, für Debugging auf demselben System) für RISC-V GNU/Linux-Plattformen (riscv*-*-linux*) und RISC-V FreeBSD (riscv*-*-freebsd*) wurden hinzugefügt;
- Zielsystemeinstellungen (target configuration) hinzugefügt: CSKY ELF (csky*-*-elf), CSKY GNU/Linux (csky*-*-linux), NXP S12Z ELF (s12z-*-elf), OpenRISC GNU/Linux (or1k*-*-linux*), RISC-V GNU/Linux (riscv*-*-linux*) und RISC-V FreeBSD (riscv*-*-freebsd*);
- Das Debuggen auf demselben System unter Windows erfordert jetzt Windows XP oder neuere Versionen;
- Für die Verwendung der Python-API wird jetzt Python 2.6 oder neuer benötigt.
Quelle: opennet.ru
