Rilascio del debugger GDB 17

È stata presentata la versione 17.1 del debugger GDB (primo rilascio della serie 17.x, la branch 17.0 è stata utilizzata 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 varie piattaforme hardware (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch, ecc.) e software (GNU/Linux, *BSD, Unix, Windows, macOS).

I miglioramenti più significativi:

  • Per i sistemi x86-64 è stata implementata la supporto per lo shadow stack, introdotto nel kernel Linux 6.6, il quale consente di bloccare molte vulnerabilità sfruttando le capacità hardware dei processori Intel per proteggere da sovrascrittura degli indirizzi di ritorno delle funzioni in caso di overflow del buffer nello stack. La protezione consiste nel fatto che dopo aver passato il controllo alla funzione, gli indirizzi di ritorno vengono salvati dal processore non solo nello stack normale, ma anche in uno stack 'ombra' separato, che non può essere modificato direttamente. Prima di uscire dalla funzione, l'indirizzo di ritorno viene estratto dallo shadow stack e confrontato con l'indirizzo di ritorno dallo stack principale.
  • È stata aggiunta la possibilità di eseguire il debug di programmi Linux compilati per l'architettura AArch64 che utilizzano l'estensione GCS (Guarded Control Stack). GCS fornisce strumenti per la protezione hardware degli indirizzi di ritorno dalle funzioni e per bloccare exploit che utilizzano tecniche di Return-Oriented Programming (ROP, gli exploit sono formati da porzioni già esistenti di istruzioni machine che terminano con l'istruzione di ritorno del controllo).
  • Per i sistemi con architettura rv64gc è stata implementata una piena supporto per la registrazione del processo di esecuzione del programma per il debug all'indietro e la riproduzione di sezioni di codice.
  • Nel comando 'info threads' sono state aggiunte le opzioni '-stopped' e '-running' per mostrare solo i thread fermati o solo quelli in esecuzione.
  • Nel comando 'info sharedlibrary' per le piattaforme Linux e FreeBSD è stato garantito che siano visualizzati gli indirizzi per l'intero range di memoria allocato per la libreria condivisa (in precedenza venivano mostrati solo l'indirizzo base e gli indirizzi per la sezione .text).
  • È stata assicurata la possibilità di utilizzare i checkpoint in Linux mentre si eseguono il debug di più processi contemporaneamente.
  • È stato ampliato il supporto per i namespace del linker.
  • Per evidenziare errori e avvisi sono stati utilizzati simboli emoji.
  • Su piattaforma Linux è stata implementata la possibilità integrata di accedere a variabili locali dei thread (Thread-Local Storage, TLS), utilizzata in assenza della libreria libthread_db. Questa funzionalità è disponibile per le architetture x86_64, aarch64, ppc64, s390x e riscv durante la compilazione con GLIBC o MUSL.
  • È stato aggiunto il comando «set riscv numeric-register-names» per visualizzare i registri RISC-V utilizzando i loro identificativi numerici invece dei nomi ABI.
  • Sono stati apportati miglioramenti all'API di Python. Sono state aggiunte nuove classi gdb.Color e gdb.ParameterPrefix, l'attributo gdb.Value.is_unavailable e la funzione gdb.warning(). È stata interrotta la compatibilità con le versioni precedenti di Python — è supportato solo Python 3.4 e versioni successive.
  • Sono stati apportati miglioramenti all'API di Guile. È stato aggiunto il tipo «».
  • Le capacità del protocollo DAP (Debugger Adapter Protocol) sono state ampliate: è stato implementato il supporto per le richieste «completions» e aggiunta l'opzione «—binary-output» per disattivare la conversione dei caratteri di nuova linea sulla piattaforma Windows.
  • Sono state aggiunte le variabili $_colorsupport (elenco degli spazi colore supportati dal terminale), $linker_namespace_count e $_linker_namespace (elenco degli spazi dei nomi attivi del linker).
  • Sono state aggiunte le opzioni «—disable-gdb-compile» per disattivare il sottosistema di compilazione, e «—disable-gdb-dwarf-support» e «—disable-gdb-mdebug-support» per disattivare le informazioni di debug nei formati DWARF e mdebug/ecoff.
  • In gdbserver è stata interrotta la compatibilità con UST (static tracepoint).

Fonte: opennet.ru

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