È stato rilasciato il debugger GDB 15.1 (il primo rilascio della serie 15.x, la versione 15.0 è stata utilizzata per lo sviluppo). GDB supporta il debug a livello di codice sorgente per un'ampia gamma di linguaggi di programmazione (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust, ecc.) su diverse piattaforme hardware (i386, amd64, ARM, Power, Sparc, RISC-V, ecc.) e software (GNU/Linux, *BSD, Unix, Windows, macOS).
Miglioramenti chiave:
- Per compilare GDB e GDBserver ora è necessario un compilatore che supporti C++17 (almeno GCC 9).
- Sono stati apportati miglioramenti all'API Python. Sono state aggiunte le funzioni gdb.notify_mi, gdb.missing_debug.register_handler e gdb.interrupt, la classe gdb.missing_debug.MissingDebugInfo, il modulo db.missing_debug, gli attributi gdb.Value.bytes e gdb.InferiorThread.ptid_string, e le costanti gdb.SYMBOL_TYPE_DOMAIN, gdb.SYMBOL_FUNCTION_DOMAIN e gdb.SEARCH_*_DOMAIN. Negli oggetti gdb.Inferior e gdb.InferiorThread è stata implementata la possibilità di aggiungere attributi personalizzati.
- È continuata l'implementazione del protocollo DAP (Debugger Adapter Protocol). È stata aggiunta la comando ‘set debug dap-log-level’ per gestire la registrazione dei log per DAP. È stato aggiunto il supporto per la richiesta ‘cancel’ e la possibilità di generare eventi ‘process’.
- Nel protocollo di debug remoto è stato aggiunto il supporto per i pacchetti QThreadOptions e qIsAddressTagged, così come è stata implementata la comando ‘set/show remote thread-options-packet’.
- In GDBserver, the options ‘—remote-debug’ and ‘—event-loop-debug’, as well as the commands ‘monitor set remote-debug’ and ‘monitor set event-loop-debug’ are no longer supported. Instead, the option ‘—debug’ now allows the passing of a comma-separated list of components for debugging (all, threads, event-loop, and remote). Similarly, the option for specifying components is implemented in the command ‘monitor set debug’.
- È stata aggiunta l'informazione sulla funzione main all'indice, il che permette di accelerare l'avvio con alcuni grandi file eseguibili.
- The MPX commands ‘show/set mpx bound’ have been deprecated, with support discontinued by Intel in 2019.
- Sono stati aggiunti nuovi comandi:
- ‘set/show direct-call-timeout’
- ‘set/show indirect-call-timeout’
- ‘set/show unwind-on-timeout on|off’
- ‘set/show unwind-on-signal on|off’
- The commands ‘gcore’ and ‘generate-core-file’ now support optimization of empty areas in the generated core files.
Fonte: opennet.ru
