Została wydana wersja debuggera GDB 12.1 (pierwsze wydanie serii 12.x, gałąź 12.0 była używana do rozwoju). GDB wspiera debugowanie w poziomie kodu źródłowego dla szerokiej gamy języków programowania (Ada, C, C++, Objective-C, Pascal, Go, Rust itd.) na różnych platformach sprzętowych (i386, amd64, ARM, Power, Sparc, RISC-V itd.) i oprogramowania (GNU/Linux, *BSD, Unix, Windows, macOS).
Kluczowe ulepszenia:
- Domyślnie włączony jest tryb wielowątkowy ładowania symboli debugowania, który przyspiesza uruchamianie.
- Ulepszono wsparcie dla szablonów C++.
- Zrealizowano wsparcie dla pracy na platformie FreeBSD w trybie asynchronicznym (async).
- Dodano możliwość wyłączenia użycia GNU Source Highlight i wykorzystania biblioteki Pygments do podświetlania składni.
- W komendzie „clone-inferior” wprowadzono weryfikację kopiowania ustawień TTY, CMD i ARGS z oryginalnego obiektu debugowania (inferior) do nowego obiektu debugowania. Zapewniono również kopiowanie do nowego obiektu debugowania wszystkich zmian zmiennych środowiskowych dokonanych przez polecenia ‘set environment’ lub ‘unset environment’.
- W komendzie „print” wprowadzono wsparcie dla wyjścia liczb zmiennoprzecinkowych z określeniem formatu wartości bazowej, na przykład w postaci szesnastkowej („/x”).
- Dodano wsparcie dla uruchamiania debuggera oraz GDBservera na architekturze GNU/Linux/OpenRISC (or1k*-*-linux*). Dodano wsparcie dla debugowania aplikacji dla platformy docelowej GNU/Linux/LoongArch (loongarch*-*-linux*). Wsparcie dla platformy docelowej S+core (score-*-*) zostało zakończone.
- GDB 12 ogłoszono ostatnim wydaniem, dla którego obsługiwano kompilację przy użyciu Pythona 2.
- Ogłoszono przestarzałym i zostanie usunięty w gałęzi GDB 13 tryb zgodności z DBX.
- W interfejsie API GDB/MI umożliwiono użycie komendy ‘-add-inferior’ bez parametrów lub razem z flagą ‘—no-connection’ do dziedziczenia połączenia z bieżącego obiektu debugowania lub uruchamiania bez połączenia.
- Wprowadzono ulepszenia w Python API. Umożliwiono realizację komend GDB/MI w języku Python. Dodano nowe zdarzenia gdb.events.gdb_exiting i gdb.events.connection_removed, funkcję gdb.Architecture.integer_type(), obiekt gdb.TargetConnection, właściwość gdb.Inferior.connection, metodę gdb.RemoteTargetConnection.send_packet oraz atrybuty gdb.InferiorThread.details, gdb.Type.is_scalar i gdb.Type.is_signed.
Źródło: opennet.ru
