U publikua versioni i debugger-it GDB 17.1 (lëshimi i parë i serisë 17.x, dega 17.0 është përdorur për zhvillim). GDB mbështet debugging në nivelin e kodit burimor për një gamë të gjerë gjuhësh programimi (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust, etj.) në platforma të ndryshme harduerike (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch, etj.) dhe softuerike (GNU/Linux, *BSD, Unix, Windows, macOS).
Përmirësimet më të dukshme:
- Për sistemet x86-64 është realizuar mbështetje për stakun e hijes (shadow stack), i cili u shfaq në bërthamën e Linux 6.6 dhe lejon bllokimin e funksionimit të shumë eksploiteve, duke përdorur mundësitë harduerike të procesorëve Intel për të mbrojtur nga rishkrimi i adresës së rikthimit nga funksioni në rast të mbushjes së tamponit në një stok. Thelbi i mbrojtjes është se pasi t'i jepet kontrolli funksionit, adresat e rikthimit ruhen nga procesori jo vetëm në stakun e zakonshëm, por edhe në një "stak të hijes" të veçantë, i cili nuk mund të ndryshohet drejtpërdrejt. Para se të dalë nga funksioni, adresa e rikthimit nxirret nga staku i hijes dhe krahasohet me adresën e rikthimit nga staku kryesor.
- U shtua mundĂ«sia pĂ«r debug-imin e programeve Linux, tĂ« ndĂ«rtuara pĂ«r arkitekturĂ«n AArch64 dhe qĂ« pĂ«rdorin zgjerimin GCS (Guarded Control Stack). GCS ofron mjete pĂ«r mbrojtjen harduerike tĂ« adresave tĂ« kthimit nga funksionet dhe pĂ«r blokimin e eksploiteve qĂ« pĂ«rdorin metoda tĂ« programimit me kthim tĂ« orientuar (ROP â Return-Oriented Programming, ku sulmi formohet nga pjesĂ« tĂ« ekzistuara tĂ« instruksioneve makhine qĂ« pĂ«rfundojnĂ« me instruksionin e kthimit tĂ« kontrollit).
- Për sistemet me arkitekturë rv64gc është implementuar mbështetje e plotë për regjistrimin e procesit të ekzekutimit të programit për debugging në drejtimin e kundërt dhe përsëritjen e segmenteve të kodit.
- Në komandën «info threads» janë shtuar opsionet «-stopped» dhe «-running» për të treguar vetëm fijet e ndaluara ose vetëm ato të ekzekutimit.
- Në komandën «info sharedlibrary» në platformat Linux dhe FreeBSD është siguruar tregimi i adresave për të gjithë gamën e memories të ndarë nga biblioteka e përbashkët (më parë tregohej vetëm adresa bazë dhe adresat për seksionin .text).
- ĂshtĂ« siguruar mundĂ«sia e pĂ«rdorimit tĂ« shkĂ«mbimeve tĂ« gjendjes (checkpoint) nĂ« Linux ndĂ«rkohĂ« qĂ« zhvillohet debugging pĂ«r disa procese.
- ĂshtĂ« zgjeruar mbĂ«shtetja pĂ«r hapĂ«sirat emĂ«rore tĂ« lidhĂ«sit (linker namespace).
- Për të shfaqur gabimet dhe paralajmërimet janë përdorur simbolet emoji.
- Në platformën Linux është realizuar një mundësi e integruar për qasje në variablat lokale të fijeve (Thread-Local Storage, TLS), e cila përdoret kur nuk ka bibliotekë libthread_db. Kjo mundësi është e disponueshme për arkitekturën x86_64, aarch64, ppc64, s390x dhe riscv duke u ndërtuar me GLIBC ose MUSL.
- ĂshtĂ« shtuar komanda «set riscv numeric-register-names» pĂ«r tĂ« shfaqur regjistrat RISC-V duke pĂ«rdorur identifikuesit e tyre numerikĂ« nĂ« vend tĂ« emrave ABI.
- JanĂ« bĂ«rĂ« pĂ«rmirĂ«sime nĂ« API-nĂ« e Python-it. JanĂ« shtuar klasa tĂ« reja gdb.Color dhe gdb.ParameterPrefix, atributi gdb.Value.is_unavailable, funksioni gdb.warning(). ĂshtĂ« ndĂ«rprerĂ« mbĂ«shtetja pĂ«r versionet e vjetra tĂ« Python-it - mbĂ«shtetet vetĂ«m Python 3.4 dhe mĂ« shumĂ«.
- JanĂ« bĂ«rĂ« pĂ«rmirĂ«sime nĂ« API-nĂ« e Guile. ĂshtĂ« shtuar lloji «».
- JanĂ« zgjeruar mundĂ«sitĂ« e protokollit DAP (Debugger Adapter Protocol): Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r kĂ«rkesat «completions» dhe Ă«shtĂ« shtuar opsioni «âbinary-output» pĂ«r tĂ« çaktivizuar transformimin e simboleve tĂ« pĂ«rkthimit tĂ« vijave tĂ« reja nĂ« platformĂ«n Windows.
- Shtesë të reja për variablat $_colorsupport (lista e hapësirave të ngjyrave të mbështetura nga terminali), $linker_namespace_count dhe $_linker_namespace (lista e hapësirave aktiv të emrave të linkuesit).
- Shtohen opsionet «âdisable-gdb-compile» pĂ«r tĂ« çaktivizuar nĂ«n-sistemin e kompilimit, si dhe «âdisable-gdb-dwarf-support» dhe «âdisable-gdb-mdebug-support» pĂ«r tĂ« çaktivizuar informacionin e debugging nĂ« formatet DWARF dhe mdebug/ecoff.
- Në gdbserver është ndaluar mbështetja për UST (static tracepoint).
Burimi: opennet.ru
