Bylo představeno vydání ladicího programu GDB 11.1 (první vydání řady 11.x, pro vývoj byla použita větev 11.0). GDB podporuje ladění na úrovni zdroje pro širokou škálu programovacích jazyků (Ada, C, C++, Objective-C, Pascal, Go, Rust atd.) na různém hardwaru (i386, amd64, ARM, Power, Sparc, RISC - V atd.) a softwarové platformy (GNU/Linux, *BSD, Unix, Windows, macOS).
Klíčová vylepšení:
- TUI (Text User Interface) přidalo podporu akcí myši a možnost posouvat obsah pomocí kolečka myši. Povoleno přeposílání kombinací kláves do GDB, které nejsou zpracovány v TUI.
- Přidána podpora pro mechanismus ARMv8.5 MTE (MemTag, Memory Tagging Extension), který umožňuje svázat tagy s každou operací alokace paměti a organizovat kontrolu ukazatele při přístupu do paměti, která musí být spojena se správným tagem. Protokol Remote Debug Control Protocol poskytuje podporu pro balíčky „qMemTags“ a „QMemTags“ pro vazbu tagů na paměť.
- Logika čtení konfiguračních souborů byla změněna. Soubor .gdbinit se nyní kontroluje v následujícím pořadí: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit a $HOME/.gdbinit. Tito. nejprve v podadresáři config a teprve potom v domovském adresáři.
- V příkazu „break […] if CONDITION“ se chybový výstup zastaví, když je podmínka na určitých místech neplatná, pokud je podmínka platná alespoň v jednom případě.
- Přidána podpora pro ladění výpisů jádra generovaných pro programy Cygwin kompilované pro architekturu x86_64.
- Přidána podpora pro typy s pevnou čárkou a také konstanty DW_AT_GNU_numerator a DW_AT_GNU_denominator.
- Přidáno nastavení „spouštění-tiše zapnuto|vypnuto“; když je „on“, podobně jako možnost „-tichý“.
- Příkaz "ptype" implementuje volby /x" a "/d" pro výběr šestnáctkové nebo desítkové soustavy při zobrazování velikostí a posunů. Přidáno nastavení "print type hex on|off" pro použití hexadecimálních hodnot ve výstupu příkazu 'ptype'.
- V příkazu "inferior" je při volání bez argumentů poskytnut výstup aktuálního ladícího objektu (inferior).
- Výstup příkazu „info source“ byl přepracován.
- Přidán příkaz „style version foreground | pozadí | intenzita" pro ovládání stylu číslování verzí.
- Přidány nové možnosti příkazového řádku: „—early-init-command“ („-eix“), „—early-init-eval-command“ („-eiex“), „—qualified“ (pro příkazy '-break-insert ) ' a '-dprintf-insert'), "--force-condition" (pro příkazy '-break-insert' a '-dprintf-insert'), "--force" (pro '-break-condition 'příkaz).
- Příkaz „-file-list-exec-source-files“ umožňuje zadat regulární výrazy pro odfiltrování zdrojových souborů ke zpracování. Do výstupu bylo přidáno pole 'debug-full-read', které označuje rozsah, v jakém byly načteny ladicí informace.
- Vylepšení byla provedena v Python API. Přidány nové metody gdb.Frame.level() a db.PendingFrame.level() pro vrácení úrovně zásobníku pro objekt Frame. Když je spuštěn catchpoint, Python API zajistí odeslání gdb.BreakpointEvent místo gdb.StopEvent. Přidáno nastavení "python ignore-environment on|off" pro ignorování proměnných prostředí a "python dont-write-bytecode auto|on|off" pro zakázání zápisu bytecode.
- Vylepšení byla provedena v Guile API. Byly přidány nové postupy hodnota-referenční-hodnota, hodnota-rvalue-referenční-hodnota a hodnota-konst-hodnota.
- Mezi požadované závislosti sestavení patří knihovna GMP (GNU Multiple Precision Arithmetic).
- Podpora platformy ARM Symbian (arm*-*-symbianelf*) byla ukončena.
Zdroj: opennet.ru