È stato rilasciato il debugger GDB 11.1 (il primo rilascio della serie 11.x, la versione 11.0 è stata utilizzata per lo sviluppo). GDB supporta il debugging a livello di codice sorgente per un'ampia gamma di linguaggi di programmazione (Ada, C, C++, Objective-C, Pascal, Go, Rust, ecc.) su diverse piattaforme hardware (i386, amd64, ARM, Power, Sparc, RISC-V, ecc.) e software (GNU/Linux, *BSD, Unix, Windows, macOS).
Miglioramenti chiave:
- Nell'interfaccia TUI (Text User Interface) è stata aggiunta la supporto per le azioni del mouse e la possibilità di scorrere il contenuto con la rotellina del mouse. È garantito il passaggio a GDB delle combinazioni di tasti non gestite nella TUI.
- È stata aggiunta la supporto per il meccanismo ARMv8.5 MTE (MemTag, Memory Tagging Extension), che consente di collegare i tag a ogni operazione di allocazione della memoria e di organizzare un controllo del puntatore durante l'accesso alla memoria, che deve essere associato al tag corretto. Nel protocollo di controllo remoto del debugging, è stata fornita la supporto per i pacchetti «qMemTags» e «QMemTags» per il collegamento dei tag alla memoria.
- È stata modificata la logica di lettura dei file di configurazione. Il file .gdbinit viene ora controllato nel seguente ordine: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit e $HOME/.gdbinit. Cioè, prima nella sottocartella config e poi nella home.
- Nel comando «break […] if CONDITION», l'output dell'errore viene interrotto in caso di condizioni non valide in determinati punti, se la condizione è valida in almeno un caso.
- Aggiunta la supporto per il debug dei core dump generati per applicazioni Cygwin compilate per architettura x86_64.
- Aggiunto il supporto per i tipi a virgola fissa, oltre alle costanti DW_AT_GNU_numerator e DW_AT_GNU_denominator.
- Aggiunta l'impostazione «startup-quietly on|off»; quando è «on», è simile all'opzione «-silent».
- Nel comando «ptype» implementate le opzioni «/x» e «/d» per scegliere la numerazione esadecimale o decimale durante l'output delle dimensioni e degli offset. Aggiunta l'impostazione «print type hex on|off» per utilizzare valori esadecimali nell'output del comando ‘ptype’.
- Nel comando «inferior» viene fornito l'output dell'oggetto di debug corrente (inferior) quando chiamato senza argomenti.
- Ristrutturato l'output del comando «info source».
- Aggiunto il comando «style version foreground | background | intensity» per gestire lo stile della numerazione delle versioni.
- Aggiunte nuove opzioni da riga di comando: «—early-init-command» («-eix»), «—early-init-eval-command» («-eiex»), «—qualified» (per i comandi ‘-break-insert’ e ‘-dprintf-insert’), «—force-condition» (per i comandi ‘-break-insert’ e ‘-dprintf-insert’), «—force» (per il comando ‘-break-condition’).
- Nel comando ‘-file-list-exec-source-files’ è consentito specificare espressioni regolari per filtrare i file sorgente elaborati. Nell'output è stato aggiunto il campo ‘debug-fully-read’ per informare sul grado di caricamento delle informazioni di debug.
- Miglioramenti all'API Python. Aggiunti nuovi metodi gdb.Frame.level() e db.PendingFrame.level() per restituire il livello dello stack per l'oggetto Frame. Durante il verificarsi di un punto di cattura (catchpoint) nell'API Python, è garantito il passaggio di gdb.BreakpointEvent invece di gdb.StopEvent. Aggiunte impostazioni «python ignore-environment on|off» per ignorare le variabili di ambiente e «python dont-write-bytecode auto|on|off» per disabilitare la scrittura del bytecode.
- Miglioramenti all'API Guile. Aggiunte nuove procedure value-reference-value, value-rvalue-reference-value e value-const-value.
- Inclusa la libreria GMP (GNU Multiple Precision Arithmetic) tra le dipendenze di build obbligatorie.
- Interrotta la supporto per la piattaforma ARM Symbian (arm*-*-symbianelf*).
Fonte: opennet.ru
