Pubblicazione del debugger GDB 14

È 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

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster