Wydanie debugera GDB 9

Przesłane przez wydanie debugera GBP 9.1 (do rozwoju wykorzystano pierwsze wydanie serii 9.x, gałąź 9.0). GDB obsługuje debugowanie na poziomie źródła dla szerokiej gamy języków programowania (Ada, C, C++, Objective-C, Pascal, Go itp.) na różnym sprzęcie (i386, amd64, ARM, Power, Sparc, RISC-V itp.) oraz platformy oprogramowania (GNU/Linux, *BSD, Unix, Windows, macOS).

Klucz ulepszenia:

  • Zakończono obsługę platform Solaris 10 i Cell Broadband Engine;
  • Dodano nowy symulator podsystemu PRU (Programmable Real-time Unit) stosowanego w procesorach Texas Instruments (pru-*-elf);
  • Dodano tryb eksperymentalny do szybkiego ładowania symboli debugowania w trybie wielowątkowym (włączany poprzez ustawienie „maint set worker-threads nieograniczone”);
  • W nazwach poleceń można używać symbolu „.”;
  • Dodano możliwość ustawiania punktów przerwania dla zagnieżdżonych funkcji i podprogramów w Fortranie;
  • Prowadzono prace nad doprowadzeniem do jednolitego stylu i poprawą czytelności poleceń;
  • Zaimplementowano standardową infrastrukturę do przekazywania argumentów poleceń za pomocą znaku myślnika („-OPT”), która umożliwia autouzupełnianie za pomocą klawisza Tab;
  • Polecenia „printf” i „eval” implementują obsługę wysyłania ciągów znaków w stylach C i Ada bez bezpośredniego wywoływania funkcji w programie;
  • Dodano obsługę filtrowania plików wyjściowych na podstawie wyrażenia regularnego w poleceniu „Źródła informacji”;
  • W ustawieniu „ustaw argumenty ramki wydruku” zaimplementowany jest parametr „obecność”, gdy jest ustawiony, dla argumentów wyświetlany jest tylko wskaźnik obecności „…” zamiast wyświetlać nazwę i wartość;
  • W interfejsie TUI w poleceniach „focus”, „winheight”, „+”, „-”, „>”, „<” rozróżniana jest teraz wielkość liter;
  • Dla poleceń „print”, „kompiluj print”, „backtrace”, „frame”
    Apply”, zaimplementowano opcje „tfaas” i „faas”, aby zastąpić ustawienia globalne (na przykład te ustawione za pomocą „set print […]”);

  • Do polecenia „info typy” dodano opcję „-q”, aby wyłączyć wyświetlanie niektórych nagłówków;
  • W ustawieniach zamiast wartości „bez ograniczeń” możesz teraz określić „u”;
  • Dodano nowe polecenia:
    • „define-prefix” do definiowania własnych poleceń przedrostkowych;
    • „|” lub „potok”, aby uruchomić polecenie i przekierować dane wyjściowe do polecenia powłoki;
    • „z”, aby uruchomić określone polecenie z tymczasowo zmienionymi ustawieniami;
    • „ustaw funkcje wywołania może”, aby kontrolować, czy podprogram może być wywołany z GDB;
    • „ustaw zakończenie drukowania [on|off]”, aby kontrolować wyświetlanie wartości zwracanej podczas korzystania z polecenia „zakończ”;
    • „ustaw maksymalną głębokość druku”, aby ograniczyć wydajność zagnieżdżonych struktur;
    • „ustaw drukuj surowe wartości [on|off]”, aby włączyć/wyłączyć formatowanie wartości wyjściowych;
    • „ustaw logowanie debugredirect [on|off]”, aby kontrolować zapisywanie wyników debugowania w pliku dziennika;
    • Seria nowych poleceń „ustaw styl”;
    • „ustaw wydruk informacji o ramce […]” w celu zdefiniowania informacji, które powinny zostać wydrukowane podczas wyświetlania stanu ramki stosu;
    • „set tui Compact-source”, aby włączyć tryb kompaktowy do wyświetlania kodu w interfejsie TUI (Text User Interface);
    • „moduły informacyjne […]” umożliwiające żądanie informacji o modułach Fortran;
    • Zamiast „ustaw/pokaż wydrukuj argumenty surowej ramki” zaproponowano polecenie „ustaw/pokaż wydrukuj argumenty nieprzetworzonej ramki” (używa myślnika zamiast spacji jako separatora);
  • W interfejsie oprogramowania sterującego GDB/MI dodano nowe polecenia „-complete”, „-catch-throw”, „-catch-rethrow”, „-catch-catch”, „-symbol-info-funkcje”, „-symbol-info-types”,
    „-symbol-info-zmienne”, „-symbol-info-moduły”, „-symbol-info-module-functions” i „-symbol-info-module-variables” są równoważne tym samym poleceniom 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_kod wyjścia, $_shell_sygnał wyjścia
  • Dodano opcję „--with-system-gdbinit-dir” do skryptu konfiguracyjnego kompilacji, aby określić ścieżkę do plików systemowych gdbinit;
  • W interfejsie API Pythona wprowadzono wiele ulepszeń. Dodano możliwość budowania w Pythonie 3 w systemie Windows;
  • Zwiększono wymagania dotyczące środowiska montażu. Budowanie GDB i GDBserver wymaga teraz co najmniej GNU w wersji 3.82. Podczas budowania z zewnętrzną biblioteką Readline wymagana jest co najmniej wersja GNU Readline 7.0.

Źródło: opennet.ru

Dodaj komentarz