Została wydana wersja debuggera GDB 14.1 (pierwsze wydanie serii 14.x, gałąź 14.0 była używana do rozwoju). GDB obsługuje debugowanie na poziomie źródłowym dla szerokiego zakresu języków programowania (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust itp.) na różnych platformach sprzętowych (i386, amd64, ARM, Power, Sparc, RISC-V itp.) i programowych (GNU/Linux, *BSD, Unix, Windows, macOS).
Kluczowe ulepszenia:
- Kod źródłowy został przekształcony do użycia standardu C++17. Do kompilacji GDB teraz potrzebny jest kompilator obsługujący C++17 (przynajmniej GCC 9).
- Do indeksu dodano informacje o funkcji main, co przyspiesza uruchamianie w przypadku korzystania z niektórych dużych plików wykonywalnych.
- Wsparcie dla systemów operacyjnych AIX 4.x, 5.x i 6.x zostało zakończone (minimalnie wspierana wersja AIX to 7.1).
- Dodano wstępną wbudowaną obsługę protokołu DAP (Debugger Adapter Protocol).
- Dodano wsparcie dla zmiennej środowiskowej NO_COLOR.
- Dodano wstępną obsługę typów całkowitych większych niż 64 bity.
- Dodano wsparcie dla punktów przerwania powiązanych z poszczególnymi obiektami debugowania (podczas debugowania wielu procesów).
- Dodano funkcję „$_shell” do uruchamiania polecenia w powłoce oraz zwracania wyniku.
- Wprowadzono ulepszenia w Python API:
- Dodano klasy gdb.Thread, gdb.unwinder.FrameId i gdb.ValuePrinter.
- Dodano atrybuty gdb.Inferior.arguments, gdb.Inferior.main_name, gdb.Breakpoint.inferior, gdb.Progspace.symbol_file, gdb.Progspace.executable_filename.
- Dodano funkcje gdb.execute_mi(COMMAND, [ARG]…), gdb.block_signals().
- Dodano metody gdb.Frame.static_link, gdb.Inferior ‘clear_env’, ‘set_env’ i ‘unset_env’, gdb.Type ‘is_array_like’ i ‘is_string_like’, gdb.Value ‘assign’, gdb.Value ‘to_array’, gdb.Progspace ‘objfile_for_address’, gdb.LazyString __str__. Dodano zdarzenia gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent, gdb.NewProgspaceEvent, gdb.FreeProgspaceEvent.
- Dodano możliwość włączania i wyłączania poszczególnych funkcji dla zdalnych celów debugowania.
- Ulepszono wsparcie dla architektury AArch64. Dodano wsparcie dla rozszerzeń SME (Scalable Matrix Extension) oraz SME2.
- Ulepszono wsparcie dla języka Ada oraz specyfikacji Ada 2022.
- W poleceniu ‘list’ dodano wsparcie dla argumentu ‘.’ do wyświetlania lokalizacji punktu wykonania w bieżącej klatce stosu.
- W poleceniach printf i dprintf dodano specyfikator formatu ‘%V’.
- W poleceniu printf rozmiar ciągu pobieranego z obiektu debugowania jest ograniczony wartością ustawienia ‘max-value-size’.
- Dodano opcję kompilacji «—additional-debug-dirs=PATH», która ustawia wartość domyślną dla parametrów ‘debug-file-directory’.
- Dodano nowe polecenie «info main» do pobierania symbolu main, wskazującego na punkt wejścia w programie.
- Dodano nowe komendy:
- «ustaw debug breakpoint włącz|wyłącz»
- «ustaw zdarzenia myszy TUI [włącz|wyłącz]»
- «ustaw zawsze-odczyt-ctf włącz|wyłącz»
- «konserwacja wydrukuj instrukcję zapisu [ N ]»
- «konserwacja info ramki-rozwiązania»
- «konserwacja czekaj-na-indeks-pamięci»
Źródło: opennet.ru
