Presentato il rilascio del debugger GDB 13.1 (primo rilascio della serie 13.x, il ramo 13.0 è stato utilizzato per lo sviluppo). GDB supporta il debug a livello di sorgente per un ampio range di linguaggi di programmazione (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust, ecc.) su varie 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 l'operatività su piattaforma Windows in modalità asincrona (async).
- Sulla piattaforma FreeBSD per le architetture ARM e AArch64 è stato aggiunto il supporto per variabili TLS (Thread Local Storage), e per l'architettura AArch64 è stata fornita la possibilità di utilizzare punti di interruzione hardware (watchpoint).
- Nell'ambiente GNU/Linux sui sistemi LoongArch è stato aggiunto il supporto per le operazioni in virgola mobile.
- Implementate nuove istruzioni “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 Python. Aggiunta 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 gestione GDB/MI è stata dichiarata obsoleta la prima versione dell'interfaccia MI, che sarà rimossa nel ramo GDB 14.
- Nei file ELF è stato aggiunto il supporto per sezioni di debug compresse utilizzando l'algoritmo zstd.
- Aggiunte nuove variabili incorporate: $_inferior_thread_count, $_hit_bpnum, $_hit_locno.
- Il formato di output dei comandi ‘disassemble /r’ e ‘record instruction-history /r’ è stato allineato con l'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'assembly evidenziato dall'indicatore di posizione attuale.
- È stata fornita la possibilità di utilizzare 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 associare i tag a ogni operazione di allocazione della memoria e di organizzare il controllo del puntatore durante l'accesso alla memoria, che deve essere associato al tag corretto.
- Interrotta la supporto per la modalità di compatibilità con DBX.
- Interrotta la supporto per la compilazione con Python 2.
- Eliminate i comandi «set debug aix-solib on|off», «show debug aix-solib», «set debug solib-frv on|off» e «show debug solib-frv», per i quali è necessario utilizzare i comandi «set/show debug solib».
Fonte: opennet.ru
