Wydanie debuggera GDB 9

Przedstawiony wydanie debuggera GDB 9.1 (pierwsze wydanie serii 9.x, gałąź 9.0 była wykorzystywana do rozwoju). GDB wspiera debugowanie na poziomie kodu źródłowego dla szerokiego zakresu języków programowania (Ada, C, C++, Objective-C, Pascal, Go itd.) na różnych platformach sprzętowych (i386, amd64, ARM, Power, Sparc, RISC-V itd.) oraz platformach programowych (GNU/Linux, *BSD, Unix, Windows, macOS).

Kluczowe ulepszenia:

  • Wsparcie dla platform Solaris 10 i Cell Broadband Engine zostało zakończone;
  • Dodano nowy symulator podsystemu PRU (Programmable Real-time Unit), wykorzystywanego w procesorach Texas Instruments (pru-*-elf);
  • Dodano eksperymentalny tryb szybkiego ładowania symboli debugowania w trybie wielowątkowym (włączany przez ustawienie 'maint set worker-threads unlimited');
  • Zrealizowano możliwość używania symbolu '.' w nazwach poleceń;
  • Dodano możliwość ustawiania punktów przerwania w zagnieżdżonych funkcjach i podprogramach w Fortranie;
  • Przeprowadzono prace nad ujednoliceniem stylu i poprawą czytelności poleceń;
  • Zrealizowano standardową infrastrukturę do przesyłania argumentów poleceń z zastosowaniem symbolu myślnika ('-OPT'), co umożliwia stosowanie autouzupełniania za pomocą klawisza tabulatora;
  • W poleceniach 'printf' i 'eval' dodano wsparcie dla wyjściowych ciągów znaków w stylach C i Ada bez bezpośredniego wywoływania funkcji w programie;
  • W poleceniu 'info sources' dodano wsparcie dla filtrowania wyświetlanych plików na podstawie wyrażenia regularnego;
  • W ustawieniu 'set print frame-arguments' zrealizowano parametr 'presence', po jego ustawieniu dla argumentów wyświetlany jest jedynie wskaźnik obecności '…' zamiast wyświetlania nazwy i wartości;
  • W interfejsie TUI polecenia 'focus', 'winheight', '+', '-', '>', '<' są teraz wrażliwe na wielkość liter;
  • Dla poleceń 'print', 'compile print', 'backtrace', 'frame
    apply', 'tfaas' i 'faas' zrealizowano opcje do nadpisywania globalnych ustawień (np. ustawianych przez 'set print […]');
  • W poleceniu 'info types' dodano opcję '-q' do wyłączania wyświetlania niektórych nagłówków;
  • W ustawieniach zamiast wartości 'unlimited' można teraz podać 'u';
  • Dodano nowe komendy:
    • 'define-prefix' do definiowania własnych poleceń prefiksowych;
    • '|' lub 'pipe' do wykonywania polecenia i przekierowywania wyjścia do polecenia powłoki (shell);
    • 'with' do uruchamiania wskazanego polecenia z tymczasowo zmienionymi ustawieniami;
    • 'set may-call-functions' do zarządzania możliwością wywoływania podprogramu z GDB;
    • «set print finish [on|off]» do kontroli wyświetlania wartości zwracanej podczas używania polecenia «finish»;
    • «set print max-depth» do ograniczenia wyjścia zagnieżdżonych struktur;
    • «set print raw-values [on|off]» do włączania/wyłączania formatowania wyjściowych wartości;
    • «set logging debugredirect [on|off]» do zarządzania zapisywaniem wyjścia debugowania do pliku log;
    • Seria nowych poleceń «set style»;
    • «set print frame-info […]» do określenia informacji, które należy wyświetlać podczas prezentacji stanu kadru stosu;
    • «set tui compact-source» do włączenia kompaktowego trybu wyświetlania kodu w interfejsie TUI (Text User Interface);
    • «info modules […]» do zapytania o informacje na temat modułów Fortran;
    • Zamiast «set/show print raw frame-arguments» zaproponowano polecenie «set/show print raw-frame-arguments» (jako separator używa myślnika zamiast spacji);
  • Do interfejsu programowania GDB/MI dodano nowe polecenia «-complete», «-catch-throw», «-catch-rethrow», «-catch-catch», «-symbol-info-functions», «-symbol-info-types»,
    «-symbol-info-variables», «-symbol-info-modules», «-symbol-info-module-functions» i «-symbol-info-module-variables», odpowiednie do podobnych poleceń GDB. Domyślnie aktywowana jest trzecia wersja interpretera MI (-i=mi3);
  • Dodano nowe wbudowane zmienne:
    • $_gdb_major, $_gdb_minor;
    • $_gdb_setting, $_gdb_setting_str, $_gdb_maint_setting,
    • $_gdb_maint_setting_str
    • $_cimag, $_creal
    • $_shell_exitcode, $_shell_exitsignal
  • Do skryptu konfiguracyjnego dodano opcję «—with-system-gdbinit-dir» do określenia ścieżki do systemowych plików gdbinit;
  • Wprowadzono szereg ulepszeń w Python API. Dodano możliwość kompilacji z Python 3 w Windows;
  • Zwiększone wymagania dotyczące środowiska kompilacji. Aby zbudować GDB i GDBserver, teraz wymagana jest co najmniej GNU make 3.82. Przy kompilacji z zewnętrzną biblioteką readline wymagana jest co najmniej GNU readline 7.0.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster