Wydanie debuggera GDB 18

Przedstawiono wydanie debuggera GDB 18.1 (pierwsza wersja serii 18.x, gałąź 18.0 była używana do rozwoju). GDB wspiera debugowanie na poziomie kodu źródłowego dla szerokiego zakresu języków programowania (C, C++, D, Go, Objective-C, Fortran, OpenCL C, Pascal, Rust, assembler, Modula-2 i Ada) 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:

  • Dodano wsparcie dla platform GNU/Linux/MicroBlaze (microblazeel-*linux*) oraz AArch64 MinGW (aarch64-*-mingw*). Architektura 32-bitowa s390 (s390-*) została uznana za przestarzałą i planuje się jej usunięcie.
  • Na platformie Windows zaimplementowano wsparcie dla trybu „non-stop” (dla Windows 10 i nowszych), blokadę planowania komendą „set scheduler-locking on” oraz natywne zmienne TLS (Thread Local Storage). Przy uruchomieniu w Windows Terminal zapewniono wsparcie dla 24-bitowych kolorów, emoji oraz kodowania UTF-8. W interfejsach CLI, TUI, MI i DAP wprowadzono normalizację użycia ukośnika w ścieżkach plików (zawsze używane jest C:/proj/src/main.c zamiast C:/proj/src\main.c).
  • Aby rozwiązać problemy z wyszukiwaniem typów, do indeksu .gdb_index teraz dodawane są wszystkie symbole debugowania typów.
  • W komendzie „info locals” dodano wyświetlanie adnotacji „shadowed” dla zmiennych zewnętrznych, które są przesłonięte przez wewnętrzne zmienne o tej samej nazwie. Dodano ustawienie „set print shadowed on|off” do zarządzania wyjściem.
  • W komendach „set args”, „run”, „start” i „starti” wprowadzono możliwość przekazywania argumentów zawierających znaki nowej linii, umieszczonych w cudzysłowach.
  • W GDB oraz gdbserver dodano flagę „—no-escape-args” do wyłączenia ucieczki specjalnych znaków w argumentach.
  • Dla architektury AArch64 dodano wsparcie dla rejestru FPMR (Floating Point Mode Register).
  • Dodano wstępną obsługę ładowania plików core, stworzonych na systemach z obsługą Intel AMX.
  • Dodano wsparcie dla zdarzeń śledzenia, przetwarzanych przez bibliotekę libipt 2.2.
  • Podczas debugowania przez port szeregowy dodano możliwość wskazania niestandardowych prędkości transmisji.
  • Do komendy help dodano tryb „essential” z przeglądem minimalnego zestawu komend, które mogą być potrzebne nowemu użytkownikowi GDB.
  • Dodano komendy:
    • set/show/unset local-environment — odpowiednik „set/show/unset environment”, wpływający na środowisko podprocesów uruchamianych przez sam GDB (np. przez shell lub pipe).
    • save history, save skip, save user — zapisuje historię komend, operacje skip oraz komendy użytkownika w pliku.
    • info proc environ — pokazuje zmienne środowiskowe procesu.
    • set/show progress-bars enabled — zarządzanie wyświetlaniem wskaźników postępu.
    • delete skip, enable skip, disable skip — aliasy dla poleceń skip delete/enable/disable.
    • set/show debug gnu-ifunc oraz set/show debug ctf.
  • Usunięto wsparcie dla pierwszej wersji formatu DWP (DWARF Package File), formatów informacji debugowania stabs i mdebug. Zakończono możliwość zapisu wyników śledzenia w formacie CTF (Common Trace Format).
  • W następnej wersji zaplanowano rozdzielenie trybów Windows ABI GNU (dla kodu generowanego przez zestaw narzędzi MinGW) i MSVC (dla kodu kompilanego przez kompilatory MSVC i Clang). Aby wybrać Windows ABI w poleceniu „set osabi”, konieczne będzie wskazanie wartości „Windows-GNU” i „Windows-MSVC”. Obecnie używana wartość Windows automatycznie wybierze odpowiedni tryb w zależności od argumentu „—target” (—target=x86_64-pc-windows-msvc lub —target=x86_64-w64-mingw32).

Źródło: opennet.ru

Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron z ochroną DDoS, serwery VPS VDS - ProHoster