Przedstawiono wydanie debuggera GDB 13.1 (pierwsza wersja z serii 13.x, gałąź 13.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 itd.) i programowych (GNU/Linux, *BSD, Unix, Windows, macOS).
Kluczowe ulepszenia:
- Dodano wsparcie dla uruchamiania debuggera i GDBserver na architekturach GNU/Linux/LoongArch i GNU/Linux/CSKY.
- Zrealizowano wsparcie dla pracy na platformie Windows w trybie asynchronicznym (async).
- Na platformie FreeBSD dla architektur ARM i AArch64 dodano wsparcie dla zmiennych TLS (Thread Local Storage), a dla architektury AArch64 udostępniono możliwość użycia sprzętowych punktów zatrzymania (watchpoint).
- W środowisku GNU/Linux na systemach LoongArch dodano wsparcie dla obliczeń zmiennoprzecinkowych.
- Zrealizowane nowe komendy „maintenance set ignore-prologue-end-flag|libopcodes-styling” oraz „maintenance print frame-id”, a także komendy do zarządzania stylem desasemblowanego wyjścia (set style disassembler *).
- Dodano komendy „set print nibbles [on|off]” i „show print nibbles” do kontrolowania wyświetlania wartości binarnych w czterobajtowych grupach.
- Wprowadzono ulepszenia w Python API. Dodano API do desasemblowania instrukcji, zrealizowano typ gdb.BreakpointLocation, dodano funkcje gdb.format_address, gdb.current_language i gdb.print_options.
- W interfejsie zarządzania GDB/MI ogłoszono przestarzałą pierwszą wersję interfejsu MI, która zostanie usunięta w gałęzi GDB 14.
- W plikach ELF dodano wsparcie dla sekcji debugowania skompresowanych za pomocą algorytmu zstd.
- Dodano nowe wbudowane zmienne: $_inferior_thread_count, $_hit_bpnum, $_hit_locno.
- Format wyjścia komend ‘disassemble /r’ i ‘record instruction-history /r’ dostosowano do wyjścia objdump. Aby powrócić do starego formatu, dodano tryb „/b”.
- W interfejsie TUI (Text User Interface) wyłączono stylizację kodu źródłowego i assemblerowego, wyróżnianego wskaźnikiem bieżącej pozycji.
- Zapewniono możliwość użycia komendy „document” do dokumentacji użytkowych komend.
- Dodano możliwość tworzenia zrzutów z danymi tagów pamięci, stosowanych przy użyciu mechanizmu ARMv8.5 MTE (MemTag, Memory Tagging Extension), umożliwiającego przypisanie tagów do każdej operacji alokacji pamięci i organizację przy dostępie do pamięci sprawdzenia wskaźnika, który musi być powiązany z poprawnym tagiem.
- Wsparcie dla trybu zgodności z DBX zostało zakończone.
- Wsparcie dla kompilacji z użyciem Pythona 2 zostało zakończone.
- Usunięto komendy „set debug aix-solib on|off”, „show debug aix-solib”, „set debug solib-frv on|off” oraz „show debug solib-frv”, które należy zastąpić komendami „set/show debug solib”.
Źródło: opennet.ru
