È stata rilasciata la versione 11.1 del debugger GDB (primo rilascio della serie 11.x, il ramo 11.0 è stato utilizzato per lo sviluppo). GDB supporta il debug a livello di sorgente per un'ampia gamma di linguaggi di programmazione (Ada, C, C++, Objective-C, Pascal, Go, Rust, ecc.) su varie 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 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 elaborate in TUI.
- È stata aggiunta la supporto per il meccanismo ARMv8.5 MTE (MemTag, Memory Tagging Extension), che consente di associare tag a ogni operazione di allocazione della memoria e di organizzare un controllo del puntatore durante l'accesso alla memoria, che deve essere associato a un tag corretto. Nel protocollo di controllo remoto del debug è stata garantita la supporto per i pacchetti "qMemTags" e "QMemTags" per l'associazione dei tag alla memoria.
- È stata modificata la logica di lettura dei file di configurazione. Il file .gdbinit ora viene controllato nel seguente ordine: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit e $HOME/.gdbinit. Ovvero, prima nella sottocartella di configurazione e poi nella home.
- Nella comando "break [...] if CONDITION" è stata interrotta l'uscita di errore se la condizione non è valida in determinate posizioni, se la condizione è valida almeno in un caso.
- È stata aggiunta la supporto per il debug dei core dump generati per programmi Cygwin compilati per l'architettura x86_64.
- È stata aggiunta la supporto per tipi a virgola fissa e anche per le costanti DW_AT_GNU_numerator e DW_AT_GNU_denominator.
- È stata aggiunta l'impostazione "startup-quietly on|off"; quando "on", è simile all'opzione "-silent".
- Nella comando "ptype" sono state implementate le opzioni "/x" e "/d" per selezionare il calcolo esadecimale o decimale nell'output delle dimensioni e degli spostamenti. È stata aggiunta l'impostazione "print type hex on|off" per l'uso di valori esadecimali nell'output della comando 'ptype'.
- Nella comando "inferior", chiamato senza argomenti, viene mostrato l'attuale oggetto di debug (inferior).
- È stata riprogettata l'uscita della comando "info source".
- È stata aggiunta la comando "style version foreground | background | intensity" per gestire lo stile della numerazione delle versioni.
- Sono state aggiunte nuove opzioni per la linea di comando: "—early-init-command" ("-eix"), "—early-init-eval-command" ("-eiex"), "—qualified" (per le comandi ‘-break-insert’ e ‘-dprintf-insert’), "—force-condition" (per le comandi ‘-break-insert’ e ‘-dprintf-insert’), "—force" (per la comando ‘-break-condition’).
- Nel team «-file-list-exec-source-files» è consentito l'uso di espressioni regolari per filtrare i file sorgente elaborati. È stato aggiunto un campo ‘debug-fully-read’ all'output per informare sul livello di caricamento delle informazioni di debug.
- Miglioramenti all'API Python. Sono stati aggiunti nuovi metodi gdb.Frame.level() e db.PendingFrame.level() per restituire il livello dello stack per l'oggetto Frame. Quando viene attivato un punto di interruzione (catchpoint) nell'API Python, viene garantito il passaggio di gdb.BreakpointEvent anziché gdb.StopEvent. Sono state aggiunte le impostazioni «python ignore-environment on|off» per ignorare le variabili d'ambiente e «python dont-write-bytecode auto|on|off» per disabilitare la scrittura del bytecode.
- Miglioramenti all'API Guile. Sono state aggiunte nuove procedure value-reference-value, value-rvalue-reference-value e value-const-value.
- La libreria GMP (GNU Multiple Precision Arithmetic) è stata inclusa tra le dipendenze di build obbligatorie.
- Il supporto per la piattaforma ARM Symbian (arm*-*-symbianelf*) è stato interrotto.
Fonte: opennet.ru
