È stata rilasciata la versione del debugger GDB 13.1 (il primo rilascio della serie 13.x, la versione 13.0 è stata utilizzata per lo sviluppo). GDB supporta il debug a livello di sorgente per una vasta 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:
- Aggiunta la supporto per l'avvio del debugger e GDBserver sulle architetture GNU/Linux/LoongArch e GNU/Linux/CSKY.
- Implementato il supporto per il funzionamento su Windows in modalità asincrona (async).
- Sulla piattaforma FreeBSD per le architetture ARM e AArch64, è stata aggiunta la supporto per le variabili TLS (Thread Local Storage), e per l'architettura AArch64 è possibile utilizzare punti di interruzione hardware (watchpoint).
- Nell'ambiente GNU/Linux sui sistemi LoongArch è stata aggiunta la supporto per i calcoli in virgola mobile.
- Implementati nuovi comandi «maintenance set ignore-prologue-end-flag|libopcodes-styling» e «maintenance print frame-id», oltre a comandi per gestire lo stile dell'output disassemblato (set style disassembler *).
- Aggiunti i comandi «set print nibbles [on|off]» e «show print nibbles» per gestire la visualizzazione dei valori binari in gruppi di quattro byte.
- Miglioramenti all'API di Python. Aggiunta un'API per il disassemblaggio delle istruzioni, implementato il tipo gdb.BreakpointLocation, aggiunte le funzioni gdb.format_address, gdb.current_language e gdb.print_options.
- Nell'interfaccia di controllo GDB/MI, è stata dichiarata obsoleta la prima versione dell'interfaccia MI, che verrà rimossa nella versione GDB 14.
- Nei file ELF è stata aggiunta la supporto per le sezioni di debug compresse utilizzando l'algoritmo zstd.
- Aggiunte nuove variabili integrate: $_inferior_thread_count, $_hit_bpnum, $_hit_locno.
- Il formato di output dei comandi ‘disassemble /r’ e ‘record instruction-history /r’ è stato allineato all'output di objdump. Per tornare al vecchio formato è stata aggiunta la modalità «/b».
- Nell'interfaccia TUI (Text User Interface) è stata disattivata la stilizzazione del codice sorgente e dell'assemblato evidenziato dall'indicatore di posizione corrente.
- È stata fornita la possibilità di usare il comando «document» per documentare i comandi personalizzati.
- È stata aggiunta la possibilità di creare dump con i dati dei tag di memoria, utilizzati con il meccanismo ARMv8.5 MTE (MemTag, Memory Tagging Extension), che consente di legare i tag a ogni operazione di allocazione di memoria e organizzare il controllo del puntatore in memoria per assicurarsi che sia associato al tag corretto.
- Interrotta la supporto per la modalità di compatibilità con DBX.
- Interrotta la supporto per il building con Python 2.
- Comandi «set debug aix-solib on|off», «show debug aix-solib», «set debug solib-frv on|off» e «show debug solib-frv» sono stati rimossi, e invece si devono usare i comandi «set/show debug solib».
Fonte: opennet.ru
