Rilascio del debugger GDB 13

Presentato il rilascio del debugger GDB 13.1 (il primo rilascio della serie 13.x, per lo sviluppo è stato utilizzato il ramo 13.0). GDB supporta il debug a livello sorgente per un'ampia gamma di linguaggi di programmazione (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust, ecc.) su vari hardware (i386, amd64 , ARM, Power, Sparc, RISC-V, ecc.) e piattaforme software (GNU/Linux, *BSD, Unix, Windows, macOS).

Miglioramenti chiave:

  • Aggiunto il supporto per l'esecuzione del debugger e del GDBserver su architetture GNU/Linux/LoongArch e GNU/Linux/CSKY.
  • È stato implementato il supporto per lavorare sulla piattaforma Windows in modalità asincrona (asincrona).
  • Sulla piattaforma FreeBSD è stato aggiunto il supporto per le variabili TLS (Thread Local Storage) per le architetture ARM e AArch64, ed è stata fornita la possibilità di utilizzare breakpoint hardware (watchpoint) per l'architettura AArch64.
  • Nell'ambiente GNU/Linux sui sistemi LoongArch è stato aggiunto il supporto per i calcoli in virgola mobile.
  • Implementati nuovi comandi "maintenance set ignore-prologue-end-flag|libopcodes-styling" e "maintenance print frame-id", nonché comandi per controllare lo stile dell'output disassemblato (set style disassemblar *).
  • Aggiunti i comandi "imposta nibble di stampa [on|off]" e "mostra nibble di stampa" per controllare la visualizzazione dei valori binari in gruppi di quattro byte.
  • Sono stati apportati miglioramenti all'API Python. È stata aggiunta un'API per le istruzioni di disassemblaggio, è stato implementato il tipo gdb.BreakpointLocation e sono state aggiunte le funzioni gdb.format_address, gdb.current_lingual e gdb.print_options.
  • La prima versione dell'interfaccia di gestione GDB/MI è stata deprecata e verrà rimossa in GDB 14.
  • Aggiunto supporto per sezioni di debug compresse utilizzando l'algoritmo zstd nei file ELF.
  • Aggiunte nuove variabili integrate: $_inferior_thread_count, $_hit_bpnum, $_hit_locno.
  • Il formato di output dei comandi "disassembla /r" e "registra cronologia istruzioni /r" è stato modificato per corrispondere all'output di objdump. Per ripristinare il vecchio formato è stata aggiunta la modalità “/b”.
  • Nella TUI (interfaccia utente testo), lo stile del codice sorgente e assembly evidenziato dall'indicatore di posizione corrente è disabilitato.
  • È possibile utilizzare il comando “document” per documentare i comandi dell'utente.
  • Aggiunta la possibilità di creare dump con i dati dei tag di memoria utilizzati quando si utilizza il meccanismo ARMv8.5 MTE (MemTag, Memory Tagging Extension), che consente di associare tag a ciascuna operazione di allocazione della memoria e organizzare un controllo del puntatore all'accesso alla memoria, che deve essere associato al tag corretto.
  • La modalità di compatibilità DBX è stata interrotta.
  • Il supporto per la creazione utilizzando Python 2 è stato interrotto.
  • I comandi “set debug aix-solib on|off”, “show debug aix-solib”, “set debug solib-frv on|off” e “show debug solib-frv” sono stati rimossi, e i comandi “set/show debug" dovrebbe essere usato invece di solib."

Fonte: opennet.ru

Aggiungi un commento