Vydání ladicího programu GDB 12

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

Přidat komentář