Este lansată GDB 16.1 (prima versiune a seriei 16.x, ramura 16.0 fiind utilizată pentru dezvoltare). GDB acceptă depanarea la nivel de sursă pentru o gamă largă de limbaje de programare (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust etc.) pe diverse platforme hardware (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch etc.) și software (GNU/Linux, *BSD, Unix, Windows, macOS).
Cele mai vizibile îmbunătățiri:
- Pentru Linux- mediile de pe sistemele cu arhitectura LoongArch au implementat suport pentru înregistrare și reexecutare (înregistrare/reluare).
- Pentru pointerii etichetate, unii dintre biții în care sunt utilizați pentru a stoca date suplimentare, este implementat suportul pentru punctele de întrerupere declanșate atunci când se modifică datele (punct de urmărire).
- Pe sistemele cu arhitectură AArch64, este implementat suport pentru depanarea mecanismului de protecție MTE (Memory Tagging Extension). MTE face posibilă legarea etichetelor la zonele din memorie și organizarea verificării utilizării corecte a pointerilor pentru a bloca exploatarea vulnerabilităților cauzate de lucrul incorect cu memoria.
- S-a adăugat scriptul bash gstack, care utilizează GDB pentru a imprima urmele stivei ale proceselor în curs de rulare.
- Pentru punctele de întrerupere în așteptare, cuvintele cheie „fir” și „sarcină” sunt acum analizate atunci când punctul de întrerupere este creat, mai degrabă decât după ieșirea din starea în așteptare.
- Se asigură că punctele de întrerupere legate de fire sunt inserate numai în zona programului în care rulează firul necesar.
- Capacitățile de urmărire pe procesoarele Intel au fost extinse: în timpul depanării pas cu pas, precum și în comenzile „Înregistrare istoric-instrucțiuni” și „Înregistrare funcție-istoric-apel”, ieșirea evenimentelor asincrone și a datelor salvate la utilizarea Instrucțiunea ptwrite este implementată.
- S-au adăugat modulul gdb.missing_objfile, evenimentul gdb.tui_enabled, atributul gdb.Symbol.is_artificial și funcția gdb.record.clear la API-ul Python.
- Capacitățile protocolului DAP (Debugger Adapter Protocol) legate de procesarea cererilor de „sfere”, „lansare” și „atașare” au fost extinse.
- S-a adăugat suport pentru pachetele „vFile:stat” și „x addr,length” la protocolul de depanare la distanță.
- Suportul pentru QNX Neutrino, Nios II și Intel MPX a fost întrerupt.
Sursa: opennet.ru
