Esitatud on GDB 17.1 siluri vabastus (esimene vÀljaanne 17.x seeriast, 17.0 haru kasutati arendamiseks). GDB toetab lÀhtefailide silumist laia valiku programmeerimiskeelte (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust jne.) puhul erinevatel riistvaralisel (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch jne.) ja tarkvaralisel platvormil (GNU/Linux, *BSD, Unix, Windows, macOS).
MÔned silmapaistvamad tÀiustused:
- X86-64 sĂŒsteemidele on rakendatud varjatud virna (shadow stack) tugi, mis ilmus Linuxi tuumas versioonis 6.6 ja mis vĂ”imaldab blokeerida paljusid eksploite, kasutades Intel protsessorite riistvaralist kaitset funktsioonist tagasiviimise aadressi kirjutamise vĂ€ltimiseks, juhul kui virnas toimub ĂŒlevool. Kaitse olemus seisneb selles, et pĂ€rast kontrolli ĂŒleandmist funktsioonile salvestab protsessor tagasiviimise aadressid mitte ainult tavalisel virnal, vaid ka eraldi âvarjatudâ virnas, mida ei saa otse muuta. Enne funktsiooni lĂ”petamist tĂ”mmatakse tagasiviimise aadress varjatud virnast ja vĂ”rreldakse pĂ”hivarna tagasiviimise aadressiga.
- Lisatud on vĂ”imalus siluda Linuxi programme, mis on koostatud AArch64 arhitektuuri jaoks ja kasutavad GCS-i (Guarded Control Stack). GCS pakub vahendeid funktsiooni tagasiviimise aadresside riistvaraliseks kaitseks ja eksploitide blokeerimiseks, mis kasutavad tagasiviitetehnika meetodeid (ROP â Return-Oriented Programming, eksploite vĂ”ib luua juba olemasolevate masiinijuhiste tĂŒkke, mis lĂ”ppevad juhtimise tagastamise kĂ€suga).
- Rv64gc arhitektuuriga sĂŒsteemide jaoks on rakendatud tĂ€ielik tugi programmi tĂ€itmise protsessi salvestamiseks silumiseks tagasiteel ja koodi osade korduvaks taasesitamiseks.
- KĂ€sku âinfo threadsâ on lisatud valikud â-stoppedâ ja â-runningâ, et nĂ€idata ainult peatudud vĂ”i ainult kĂ€ivitatud teemasid.
- KĂ€sk âinfo sharedlibraryâ Linuxi ja FreeBSD platvormidel nĂ€itab kĂ”iki mĂ€lu aadresse, mis on eraldatud jagatud raamatukogule (varem nĂ€idati ainult pĂ”hiadresse ja .text sektsiooni adresse).
- Tagatud on olukordade (checkpoint) kasutamise vÔimalus Linuxis samal ajal mitme protsessi silumiseks.
- Laienenud on lingijate nimede (linker namespace) tugi.
- Vigade ja hoiatuste eristamiseks on kasutatud emoji mÀrgid.
- Linux platvormil on olemas vÔimalus juurdepÀÀsuks kohalikele niitide muutujatele (Thread-Local Storage, TLS), mida kasutatakse, kui libthread_db teeki ei ole. See vÔimalus on saadaval arhitektuuride x86_64, aarch64, ppc64, s390x ja riscv puhul, kui see on kokku pandud GLIBC vÔi MUSL-ga.
- Lisatud kĂ€sk âset riscv numeric-register-namesâ, et kuvada RISC-V registreid nende numbriliste identifikaatorite abil, mitte ABI-nimede jĂ€rgi.
- Parandatud on Python API-d. Lisatud uued klassid gdb.Color ja gdb.ParameterPrefix, atribuut gdb.Value.is_unavailable, funktsioon gdb.warning(). Vanade Python versioonide tugi on lĂ”petatud â toetatakse ainult Python 3.4 ja uuemaid versioone.
- Parandatud on Guile API-d. Lisatud tĂŒĂŒp ââ.
- DAP (Debugger Adapter Protocol) protokolli vĂ”imalusi on laiendatud: rakendatud on toetust pĂ€ringutele âcompletionsâ ja lisatud valik ââbinary-outputâ, et keelata ridade vahetuse sĂŒmbolite teisendamine Windowsi platvormil.
- Lisatud muutujad $_colorsupport (terminaali toetatud vÀrvide ruumide nimekiri), $linker_namespace_count ja $_linker_namespace (aktiivsete lingi ruumide nimekiri).
- Lisatud valikud ââdisable-gdb-compileâ kompileerimisseadmete keelamiseks, samuti ââdisable-gdb-dwarf-supportâ ja ââdisable-gdb-mdebug-supportâ, et keelata DWARF ja mdebug/ecoff formaadi silumine teabe toetus.
- gdbserver ei toeta enam UST-d (staatiline jÀlgimispunkt).
Allikas: opennet.ru
