Die Veröffentlichung des Debuggers GDB 15.1 wurde vorgestellt (die erste Veröffentlichung der Reihe 15.x, Branch 15.0 wurde fĂŒr die Entwicklung verwendet). GDB unterstĂŒtzt das Debugging auf Quellcodeebene fĂŒr eine Vielzahl 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 usw.) und Softwareplattformen (GNU/Linux, *BSD, Unix, Windows, macOS).
Wesentliche Verbesserungen:
- FĂŒr den Build von GDB und GDBserver ist jetzt ein Compiler erforderlich, der C++17 unterstĂŒtzt (mindestens GCC 9).
- Verbesserungen im Python-API wurden vorgenommen. Funktionen wie gdb.notify_mi, gdb.missing_debug.register_handler und gdb.interrupt, die Klasse gdb.missing_debug.MissingDebugInfo, das Modul db.missing_debug, die Attribute gdb.Value.bytes und gdb.InferiorThread.ptid_string sowie die Konstanten gdb.SYMBOL_TYPE_DOMAIN, gdb.SYMBOL_FUNCTION_DOMAIN und gdb.SEARCH_*_DOMAIN wurden hinzugefĂŒgt. In den Objekten gdb.Inferior und gdb.InferiorThread wurde die Möglichkeit zur HinzufĂŒgung benutzerdefinierter Attribute implementiert.
- Die Implementierung des DAP (Debugger Adapter Protocol) wird fortgesetzt. Der Befehl âset debug dap-log-levelâ wurde hinzugefĂŒgt, um das Logging fĂŒr DAP zu steuern. UnterstĂŒtzung fĂŒr die Anfrage âcancelâ sowie die Möglichkeit zur Erstellung des Ereignisses âprocessâ wurde hinzugefĂŒgt.
- Im Protokoll fĂŒr Remote-Debugging wurde die UnterstĂŒtzung fĂŒr die Pakete QThreadOptions und qIsAddressTagged hinzugefĂŒgt, sowie der Befehl âset/show remote thread-options-packetâ implementiert.
- In GDBserver wurde die UnterstĂŒtzung fĂŒr die Optionen ââremote-debugâ und ââevent-loop-debugâ sowie die Befehle âmonitor set remote-debugâ und âmonitor set event-loop-debugâ eingestellt, stattdessen wurde die Möglichkeit, eine durch Kommas getrennte Liste von Komponenten zum Debuggen (all, threads, event-loop und remote) in der Option ââdebugâ zu ĂŒbergeben, implementiert. Ebenso wurde die Möglichkeit zur Angabe von Komponenten im Befehl âmonitor set debugâ umgesetzt.
- Im Index wurde die Information ĂŒber die Funktion main hinzugefĂŒgt, was den Start bei der Verwendung mit einigen groĂen ausfĂŒhrbaren Dateien beschleunigt.
- Die MPX-Befehle âshow/set mpx boundâ wurden als veraltet erklĂ€rt, die UnterstĂŒtzung wurde 2019 von Intel eingestellt.
- Neue Befehle wurden hinzugefĂŒgt:
- âset/show direct-call-timeoutâ
- âset/show indirect-call-timeoutâ
- âset/show unwind-on-timeout on|offâ
- âset/show unwind-on-signal on|offâ
- In den Befehlen âgcoreâ und âgenerate-core-fileâ wurde die UnterstĂŒtzung fĂŒr die Optimierung der Speicherung leerer Bereiche in den generierten Core-Dateien hinzugefĂŒgt.
Quelle: opennet.ru
