Представлен релиз отладчика 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