È stato presentato il rilascio del debugger GDB 14.1 (il primo rilascio della serie 14.x, il ramo 14.0 è stato utilizzato per lo sviluppo). GDB supporta il debug a livello di codice sorgente per un ampio spettro 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:
- Il codice sorgente è stato aggiornato per utilizzare lo standard C++17. Per compilare GDB è ora necessario un compilatore che supporti C++17 (almeno GCC 9).
- È stata aggiunta l'informazione sulla funzione main all'indice, il che permette di accelerare l'avvio con alcuni grandi file eseguibili.
- È stata interrotta la supporto per i sistemi operativi AIX 4.x, 5.x e 6.x (la versione minima supportata di AIX è la 7.1).
- È stata aggiunta la supporto iniziale per il protocollo DAP (Debugger Adapter Protocol).
- È stata aggiunta la supporto per la variabile d'ambiente NO_COLOR.
- È stata aggiunta la supporto iniziale per i tipi interi di dimensioni maggiori di 64 bit.
- È stata aggiunta la supporto per breakpoint legati a singoli oggetti di debug (durante il debug di più processi).
- È stata aggiunta la funzione «$_shell» per eseguire comandi nella shell e restituire i risultati.
- Miglioramenti all'API Python:
- Aggiunte le classi gdb.Thread, gdb.unwinder.FrameId e gdb.ValuePrinter.
- Aggiunti gli attributi gdb.Inferior.arguments, gdb.Inferior.main_name, gdb.Breakpoint.inferior, gdb.Progspace.symbol_file, gdb.Progspace.executable_filename.
- Aggiunte le funzioni gdb.execute_mi(COMMAND, [ARG]…), gdb.block_signals().
- Aggiunti i metodi gdb.Frame.static_link, gdb.Inferior ‘clear_env’, ‘set_env’ e ‘unset_env’, gdb.Type ‘is_array_like’ e ‘is_string_like’, gdb.Value ‘assign’, gdb.Value ‘to_array’, gdb.Progspace ‘objfile_for_address’, gdb.LazyString __str__. Aggiunti gli eventi gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent, gdb.NewProgspaceEvent, gdb.FreeProgspaceEvent.
- Aggiunta la possibilità di abilitare e disabilitare singole funzionalità per obiettivi di debug remoti.
- Migliorato il supporto per l'architettura AArch64. Aggiunto supporto per le estensioni SME (Scalable Matrix Extension) e SME2.
- Migliorato il supporto per il linguaggio Ada e la specifica Ada 2022.
- Nel comando ‘list’ è stato aggiunto il supporto per l'argomento ‘.’ per mostrare la posizione del punto di esecuzione nel frame attuale dello stack.
- Nei comandi printf e dprintf è stato aggiunto il specificatore di formato ‘%V’.
- Nel comando printf, la dimensione della stringa estratta dall'oggetto di debug è limitata dal valore della configurazione ‘max-value-size’.
- È stata aggiunta l'opzione di assemblaggio «—additional-debug-dirs=PATH», che definisce il valore predefinito per il parametro ‘debug-file-directory’.
- È stata aggiunta una nuova comando «info main» per estrarre il simbolo main, che indica il punto di ingresso nel programma.
- Sono stati aggiunti nuovi comandi:
- «set debug breakpoint on|off»
- «set tui mouse-events [on|off]»
- «set always-read-ctf on|off»
- «maintenance print record-instruction [ N ]»
- «maintenance info frame-unwinders»
- «maintenance wait-for-index-cache»
Fonte: opennet.ru
