Bylo představeno vydání ladicího programu GDB 12.1 (první vydání řady 12.x, pro vývoj byla použita větev 12.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í:
- Ve výchozím nastavení je povolen vícevláknový režim pro načítání symbolů ladění, což urychluje spouštění.
- Vylepšená podpora pro šablony C++.
- Byla implementována podpora pro práci na platformě FreeBSD v asynchronním režimu (async).
- Je možné zakázat použití GNU Source Highlight a použít knihovnu Pygments pro zvýraznění syntaxe.
- Příkaz "clone-inferior" zkontroluje, zda jsou nastavení TTY, CMD a ARGS zkopírována z původního objektu ladění (nižšího) do nového objektu ladění. Zajišťuje také, že všechny změny proměnných prostředí provedené pomocí příkazů „set environment“ nebo „unset environment“ budou zkopírovány do nového objektu ladění.
- Příkaz "print" poskytuje podporu pro tisk čísel s plovoucí desetinnou čárkou, přičemž určuje formát základní hodnoty, jako je hexadecimální ("/x").
- Přidána podpora pro spouštění debuggeru a GDBserveru na architektuře GNU/Linux/OpenRISC (nebo 1k*-*-linux*). Přidána podpora pro ladění aplikací pro cílovou platformu GNU/Linux/LoongArch (loongarch*-*-linux*). Podpora pro cílovou platformu S+core (skóre-*-*) byla ukončena.
- GDB 12 je oznámeno jako poslední vydání, které podporuje vytváření s Pythonem 2.
- Zastaralé a bude odstraněno v režimu kompatibility GDB 13 DBX.
- Rozhraní API pro správu GDB/MI umožňuje použití příkazu '-add-inferior' bez parametrů nebo s příznakem '--no-connection' k zdědění připojení z aktuálního ladícího objektu nebo ke spuštění bez připojení.
- Vylepšení byla provedena v Python API. Je poskytována schopnost implementovat příkazy GDB/MI v Pythonu. Přidány nové události gdb.events.gdb_exiting a gdb.events.connection_removed, funkce gdb.Architecture.integer_type(), objekt gdb.TargetConnection, vlastnost gdb.Inferior.connection, metoda gdb.RemoteTargetConnection.send_packet a atributy gdb.InferiorT gdb.Type.is_scalar a gdb.Type.is_signed.
Zdroj: opennet.ru