Wydano wersję debuggera GDB 16.1 (pierwsze wydanie serii 16.x, gałąź 16.0 była używana do rozwoju). GDB wspiera debugowanie na poziomie kodu źródłowego dla szerokiego zakresu języków programowania (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust itd.) na różnych platformach sprzętowych (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch itd.) i programowych (GNU/Linux, *BSD, Unix, Windows, macOS).
Najbardziej zauważalne ulepszenia:
- Dla środowisk Linux na systemach z architekturą LoongArch wdrożono wsparcie dla nagrywania i powtarzania (record/replay).
- Dla wskaźników z etykietami, gdzie część bitów jest używana do przechowywania dodatkowych danych, wdrożono wsparcie dla punktów przerwania, które aktywują się przy zmianie danych (watchpoint).
- Na systemach z architekturą AArch64 wdrożono wsparcie dla debugowania mechanizmu ochrony MTE (Memory Tagging Extension). MTE pozwala na przypisywanie etykiet do obszarów pamięci i organizowanie sprawdzania poprawności użycia wskaźników w celu zablokowania wykorzystania podatności spowodowanych niewłaściwą obsługą pamięci.
- Dodano skrypt bash gstack, który wykorzystuje GDB do wyprowadzania stack trace'ów działających procesów.
- Dla punktów przerwania w stanie oczekiwania (pending) słowa kluczowe 'thread' i 'task' są teraz interpretowane w momencie tworzenia punktu przerwania, a nie po wyjściu ze stanu oczekiwania.
- Zapewniono podstawianie punktów przerwania związanych z wątkami tylko w te obszary programu, w których wykonuje się odpowiedni wątek.
- Rozszerzono możliwości śledzenia na procesorach Intel: podczas krokowego debugowania oraz w poleceniach „record instruction-history” i „record function-call-history” zaimplementowano wyprowadzanie asynchronicznych zdarzeń i danych zapisywanych podczas użycia instrukcji ptwrite.
- W API Pythona dodano: moduł gdb.missing_objfile, zdarzenie gdb.tui_enabled, atrybut gdb.Symbol.is_artificial oraz funkcję gdb.record.clear.
- Rozszerzono możliwości protokołu DAP (Debugger Adapter Protocol) związane z obsługą żądań „scopes”, „launch” i „attach”.
- W protokole zdalnego debugowania dodano wsparcie dla pakietów „vFile:stat” i „x addr,length”.
- Zlikwidowano wsparcie dla QNX Neutrino, Nios II i Intel MPX.
Źródło: opennet.ru
