Wydanie debugera GDB 12

Zaprezentowano wydanie debuggera GDB 12.1 (do rozwoju wykorzystano pierwszą wersję serii 12.x, gałąź 12.0). GDB obsługuje debugowanie na poziomie źródła dla szerokiej gamy języków programowania (Ada, C, C++, Objective-C, Pascal, Go, Rust itp.) na różnym sprzęcie (i386, amd64, ARM, Power, Sparc, RISC - V itp.) i platform oprogramowania (GNU/Linux, *BSD, Unix, Windows, macOS).

Kluczowe ulepszenia:

  • Domyślnie włączony jest tryb wielowątkowy ładowania symboli debugowania, co przyspiesza uruchamianie.
  • Ulepszona obsługa szablonów C++.
  • Zaimplementowano obsługę pracy na platformie FreeBSD w trybie asynchronicznym (async).
  • Możliwe jest wyłączenie korzystania z podświetlania źródła GNU i używanie biblioteki Pygments do podświetlania składni.
  • Polecenie „clone-inferior” sprawdza, czy ustawienia TTY, CMD i ARGS zostały skopiowane z oryginalnego obiektu debugowania (gorszego) do nowego obiektu debugowania. Zapewnia również, że wszystkie zmiany zmiennych środowiskowych dokonane za pomocą poleceń „ustaw środowisko” lub „unset środowisko” zostaną skopiowane do nowego obiektu debugowania.
  • Polecenie „print” zapewnia obsługę drukowania liczb zmiennoprzecinkowych, określając format wartości bazowej, np. szesnastkowy („/x”).
  • Dodano obsługę uruchamiania debugera i serwera GDB na architekturze GNU/Linux/OpenRISC (lub1k*-*-linux*). Dodano obsługę debugowania aplikacji dla platformy docelowej GNU/Linux/LoongArch (loongarch*-*-linux*). Wsparcie dla platformy docelowej S+core (score-*-*) zostało przerwane.
  • Ogłoszono, że GDB 12 będzie ostatnią wersją obsługującą budowanie w Pythonie 2.
  • Przestarzałe i zostaną usunięte w trybie zgodności z GDB 13 DBX.
  • Interfejs API zarządzania GDB/MI umożliwia użycie polecenia „-add-inferior” bez parametrów lub z flagą „--no-connection” w celu dziedziczenia połączenia z bieżącego obiektu debugowania lub uruchomienia bez połączenia.
  • Wprowadzono ulepszenia w interfejsie API języka Python. Zapewniona jest możliwość implementacji poleceń GDB/MI w Pythonie. 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 i atrybuty gdb.InferiorThread.details, gdb.Type.is_scalar i gdb.Type.is_signed.

Źródło: opennet.ru

Dodaj komentarz