Выпуск отладчика GDB 9

Представлен релиз отладчика GDB 9.1 (первый выпуск серии 9.x, ветка 9.0 использовалась для разработки). GDB поддерживает отладку на уровне исходных текстов для широкого спектра языков программирования (Ada, C, C++, Objective-C, Pascal, Go и т.д.) на различных аппаратных (i386, amd64, ARM, Power, Sparc, RISC-V и т.д.) и программных платформах (GNU/Linux, *BSD, Unix, Windows, macOS).

Ключевые улучшения:

  • Прекращена поддержка платформ Solaris 10 и Cell Broadband Engine;
  • Добавлен новый симулятор подсистемы Programmable Real-time Unit (PRU), используемой в процессорах Texas Instruments (pru-*-elf);
  • Внесена порция улучшений в Python API. Добавлена возможность сборки c Python 3 в Windows;
  • Добавлен экспериментальный режим быстрой загрузки отладочных символов в многопоточном режиме (включается через настройку ‘maint set worker-threads unlimited’);
  • Обеспечена возможность использования в именах команд символа ‘.’;
  • Добавлена возможность установки точек останова на вложенные функции и подпрограммы в Fortran;
  • Проведена работа по приведения к единому стилю и улучшению читаемости команд;
  • Реализована штатная инфраструктура для передачи аргументов команд c применением символа тире (‘-OPT’), что позволяет применять автодополнение клавишей табуляции;
  • В командах «printf» и «eval» реализована поддержка вывода строк в стилях Си и Ада без непосредственного вызова функции в программе;
  • В команде «info sources» добавлена поддержка фильтрации выводимых файлов на основе регулярного выражения;
  • В настройке «set print frame-arguments» реализован параметр «presence», при установке которого для аргументов выводится лишь индикатор присутствия «…» вместо вывода имени и значения;
  • Команды «focus», «winheight», «+», «-«, «›», «‹» теперь чувствительны в регистру символов;
  • Для команд «print», «compile print», «backtrace», «frame apply», «tfaas» и «faas» реализованы опции для переопределения глобальных настроек (например, выставляемых через «set print […]»);
  • В команду «info types» добавлена опция «-q» для отключения вывода некоторых заголовков;
  • В настройках вместо значения «unlimited» теперь можно указывать «u»;
  • Добавлены новые команды:
    • «define-prefix» для определения собственных префиксных команд;
    • «|» или «pipe» для запуска команды и перенаправления вывода в команду программной оболочки (shell);
    • «with» для запуска указанной команды с временно изменёнными настройками;
    • «set may-call-functions» для управления возможностью вызова подпрограммы из GDB;
    • «set print finish [on|off]» для управления отображением возвращаемого значения при использовании команды «finish»;
    • «set print max-depth» для ограничения вывода вложенных структур;
    • «set print raw-values [on|off]» для включения/выключения форматирования выводимых значения;
    • «set logging debugredirect [on|off]» для управления сохранением отладочного вывода в лог-файле;
    • Серия новых команд «set style»;
    • «set print frame-info […]» для определения информации, которую следует выводить при отображения состояния кадра стека;
    • «set tui compact-source» для включения компактного режима в TUI;
    • «info modules […]» для запроса сведений о модулях Fortran;
    • Вместо «set/show print raw frame-arguments» предложена команда «set/show print raw-frame-arguments» (В качестве разделителя использует тире вместо пробела);
  • В программный интерфейс управления GDB/MI добавлены новые команды «-complete», «-catch-throw», «-catch-rethrow», «-catch-catch», «-symbol-info-functions», «-symbol-info-types», «-symbol-info-variables», «-symbol-info-modules», «-symbol-info-module-functions» и «-symbol-info-module-variables», эквивалентные аналогичным командам GDB. По умолчанию активирована третья версия интерпретатора MI (-i=mi3);
  • Добавлены новые встроенные переменные:
    • $_gdb_major, $_gdb_minor;
    • $_gdb_setting, $_gdb_setting_str, $_gdb_maint_setting,
    • $_gdb_maint_setting_str
    • $_cimag, $_creal
    • $_shell_exitcode, $_shell_exitsignal
  • В сборочный скрипт configure добавлена опция «—with-system-gdbinit-dir» для определения пути к системным файлам gdbinit;
  • Повышены требования к сборочному окружению. Для сборки GDB и GDBserver теперь требуется как минимум GNU make 3.82. При сборке с внешней библиотекой readline требуется как минимум GNU readline 7.0.

Источник: http://www.opennet.ru/opennews/art.shtml?num=52342