È stato rilasciato il debugger GDB 14.1 (prima versione della serie 14.x, il branch 14.0 è stato utilizzato per lo sviluppo). GDB supporta il debugging a livello di 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. Ora è necessario un compilatore che supporti C++17 per compilare GDB (almeno GCC 9).
- Nel indice sono state aggiunte informazioni sulla funzione main, il che consente di velocizzare l'avvio quando si utilizza con alcuni file eseguibili di grandi dimensioni.
- È 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).
- È stato aggiunto il supporto iniziale incorporato per il protocollo DAP (Debugger Adapter Protocol).
- È stato aggiunto il supporto per la variabile d'ambiente NO_COLOR.
- È stato aggiunto il supporto iniziale per tipi di dato interi con dimensione superiore a 64 bit.
- È stata aggiunta la supporto per i punti di interruzione legati a oggetti di debugging specifici (nella debug di più processi).
- È stata aggiunta la funzione «$_shell» per eseguire comandi nella shell e restituire i risultati.
- Miglioramenti sono stati apportati all'API Python:
- Sono stati aggiunti i classi gdb.Thread, gdb.unwinder.FrameId e gdb.ValuePrinter.
- Sono stati aggiunti gli attributi gdb.Inferior.arguments, gdb.Inferior.main_name, gdb.Breakpoint.inferior, gdb.Progspace.symbol_file, gdb.Progspace.executable_filename.
- Sono state aggiunte le funzioni gdb.execute_mi(COMMAND, [ARG]…), gdb.block_signals().
- Sono stati 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__. Sono stati aggiunti eventi gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent, gdb.NewProgspaceEvent, gdb.FreeProgspaceEvent.
- È stata aggiunta la possibilità di abilitare e disabilitare singole funzionalità per obiettivi di debug remoti.
- Migliorato il supporto per l'architettura AArch64. È stato aggiunto il supporto per le estensioni SME (Scalable Matrix Extension) e SME2.
- Migliorato il supporto per il linguaggio Ada e la specifica Ada 2022.
- Nella comando ‘list’ è stato aggiunto il supporto per l'argomento ‘.’ per stampare la posizione del punto di esecuzione nel frame di stack corrente.
- Nelle comandi printf e dprintf è stato aggiunto il specificatore di formato ‘%V’.
- Nella comando printf, la dimensione della stringa estratta dall'oggetto di debug è limitata al valore della configurazione ‘max-value-size’.
- È stata aggiunta l'opzione di compilazione «—additional-debug-dirs=PATH», che imposta il valore predefinito per il parametro ‘debug-file-directory’.
- È stato aggiunto un nuovo comando «info main» per estrarre il simbolo main, che indica il punto di ingresso del 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
