GDB 17.1 debuggers release has been announced (the first release in the 17.x series, branch 17.0 was used for development). GDB supports source-level debugging for a wide range of programming languages (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust, etc.) on various hardware platforms (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch, etc.) and software platforms (GNU/Linux, *BSD, Unix, Windows, macOS).
Silmapaistvamad tÀiustused:
- For x86-64 systems, shadow stack support has been implemented, which appeared in the Linux kernel 6.6 and allows blocking the operation of many exploits using hardware capabilities of Intel processors to protect against overwriting return addresses from functions in case of stack buffer overflow. The essence of the protection is that after control is transferred to a function, return addresses are saved by the processor not only in the regular stack but also in a separate 'shadow' stack, which cannot be modified directly. Before exiting the function, the return address is extracted from the shadow stack and compared with the return address from the main stack.
- Lisatud on vÔimalus siluda Linuxi programme, mis on loodud AArch64 arhitektuurile ja kasutavad GCS (Guarded Control Stack) laiendust. GCS pakub vahendeid funktsioonidelt tagasiviimise aadresside riistvaraliseks kaitsmiseks ja ROP-i (Return-Oriented Programming) meetodeid kasutavate eksploitide blokeerimiseks, kus eksploit koosneb juba olemasolevatest masinakeele kÀskudest, mis lÔppevad tagasiviimise kÀsuga.
- Arhitektuuriga rv64gc sĂŒsteemide jaoks on rakendatud tĂ€ielik tugi programmi kĂ€ivitamise protsessi salvestamiseks silumiseks tagurpidi ja koodilĂ”ikude taasesitamiseks.
- KÀskluses 'info threads' on lisatud valikud '-stopped' ja '-running', et nÀidata ainult peatatud vÔi ainult tÀitmisel olevaid thread'e.
- KÀskluses 'info sharedlibrary' on Linuxi ja FreeBSD platvormidel tagatud aadresside kuvamine kogu mÀlu ulatusest, mis on eraldatud jagatud teekidele (varasemalt kuvati vaid baas- ja .text sektsiooni aadressid).
- Tagatud on vÔimalus kasutada Linuxis olekuteateid (checkpoint) samal ajal, kui silutakse mitu protsessi.
- Laienatud toeks linkimise nimede ruumide toetamine.
- Vigade ja hoiatuste esitlemiseks on kasutusele vĂ”etud emoji sĂŒmbolid.
- Linuxi platvormil on rakendatud sisseehitatud vÔimalus juurdepÀÀsuks niitide kohalikele muutujaile (Thread-Local Storage, TLS), mida kasutatakse juhul, kui libthread_db teeki ei ole. Seda vÔimalust toetavad x86_64, aarch64, ppc64, s390x ja riscv arhitektuurid, kui neid ehitatakse koos GLIBC vÔi MUSL-iga.
- Lisatud kÀsk «set riscv numeric-register-names», et kuvada RISC-V registreid nende digitaalsete identifikaatorite abil, mitte ABI-nimede jÀrgi.
- Parandused Python API-s. Uued klassid gdb.Color ja gdb.ParameterPrefix, atribuut gdb.Value.is_unavailable, funktsioon gdb.warning(). Vanade Python'i versioonide tugi on lĂ”petatud â toetatakse ainult Python 3.4 ja uuemaid versioone.
- Parandused Guile API-s. Lisatud tĂŒĂŒp «<gdb:color>».
- DAP-i (Debugger Adapter Protocol) vĂ”imalusi on laiendatud: on rakendatud toetust «completions» pĂ€ringutele ja lisatud valik «âbinary-output», et keelduda ridade lĂ”pusilmuste teisendamisest Windowsi platvormil.
- Lisatud on muutujad $_colorsupport (terminaali toetatud vÀrviruumide loetelu), $linker_namespace_count ja $_linker_namespace (aktiveeritud lingiraamatute nimede loetelu).
- Lisatud on valikud ââdisable-gdb-compileâ kompileerimisse töötluse keelamiseks, samuti ââdisable-gdb-dwarf-supportâ ja ââdisable-gdb-mdebug-supportâ DWARF ja mdebug/ecoff formaadis silumisinfo keelamiseks.
- Gdbserveris on lÔpetatud UST (staatilise jÀlgimispunkti) tugi.
Allikas: opennet.ru
