Bolo predstavené vydanie ladiaceho nástroja GDB 11.1 (prvé vydanie série 11.x, na vývoj bola použitá vetva 11.0). GDB podporuje ladenie na úrovni zdroja pre širokú škálu programovacích jazykov (Ada, C, C++, Objective-C, Pascal, Go, Rust atď.) na rôznom hardvéri (i386, amd64, ARM, Power, Sparc, RISC - V atď.) a softvérové platformy (GNU/Linux, *BSD, Unix, Windows, macOS).
Kľúčové vylepšenia:
- TUI (Text User Interface) pridalo podporu pre akcie myši a možnosť posúvania obsahu pomocou kolieska myši. Povolené preposielanie kombinácií kľúčov do GDB, ktoré nie sú spracované v TUI.
- Pridaná podpora pre mechanizmus ARMv8.5 MTE (MemTag, Memory Tagging Extension), ktorý umožňuje naviazať tagy na každú operáciu alokácie pamäte a organizovať kontrolu ukazovateľa pri prístupe do pamäte, ktorá musí byť spojená so správnym tagom. Remote Debug Control Protocol poskytuje podporu pre balíky „qMemTags“ a „QMemTags“ na viazanie tagov do pamäte.
- Logika čítania konfiguračných súborov bola zmenená. Súbor .gdbinit sa teraz kontroluje v nasledujúcom poradí: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit a $HOME/.gdbinit. Tie. najprv v podadresári config a až potom v domovskom adresári.
- V príkaze „break […] if CONDITION“ sa chybový výstup zastaví, keď je podmienka na určitých miestach neplatná, ak je podmienka platná aspoň v jednom prípade.
- Pridaná podpora pre ladenie výpisov jadra generovaných pre programy Cygwin skompilované pre architektúru x86_64.
- Pridaná podpora pre typy s pevným bodom, ako aj konštanty DW_AT_GNU_numerator a DW_AT_GNU_denominator.
- Pridané nastavenie „spustenie-tiché zapnutie|vypnutie“; keď je „on“, podobne ako možnosť „-tichý“.
- Príkaz "ptype" implementuje voľby /x" a "/d" na výber šestnástkovej alebo desiatkovej sústavy pri zobrazovaní veľkostí a posunov. Pridané nastavenie „hex type tlače on|off“ na použitie hexadecimálnych hodnôt vo výstupe príkazu „ptype“.
- V príkaze "inferior" sa pri volaní bez argumentov poskytuje výstup aktuálneho ladiaceho objektu (nižšieho).
- Výstup príkazu „info source“ bol prepracovaný.
- Pridaný príkaz „style version foreground | pozadie | intenzita“ na ovládanie štýlu číslovania verzií.
- Pridané nové možnosti príkazového riadka: „—early-init-command“ („-eix“), „—early-init-eval-command“ („-eiex“), „—qualified“ (pre príkazy '-break-insert ) ' a '-dprintf-insert'), "--force-condition" (pre príkazy '-break-insert' a '-dprintf-insert'), "--force" (pre '-break-condition príkaz).
- Príkaz '-file-list-exec-source-files' vám umožňuje zadať regulárne výrazy na odfiltrovanie zdrojových súborov, ktoré sa majú spracovať. Do výstupu bolo pridané pole 'debug-full-read', ktoré označuje rozsah, v akom boli načítané ladiace informácie.
- Vylepšenia boli vykonané v Python API. Pridané nové metódy gdb.Frame.level() a db.PendingFrame.level() na vrátenie úrovne zásobníka pre objekt Frame. Keď sa spustí záchytný bod, Python API zaistí odoslanie gdb.BreakpointEvent namiesto gdb.StopEvent. Pridané nastavenia "python ignore-environment on|off" na ignorovanie premenných prostredia a "python dont-write-bytecode auto|on|off" na zakázanie zápisu bajtkódu.
- Vylepšenia boli vykonané v Guile API. Pribudli nové postupy hodnota-referenčná-hodnota, hodnota-rvalue-referenčná-hodnota a hodnota-konštantná-hodnota.
- Medzi požadované závislosti zostavy patrí knižnica GMP (GNU Multiple Precision Arithmetic).
- Podpora platformy ARM Symbian (arm*-*-symbianelf*) bola ukončená.
Zdroj: opennet.ru