Представлен релиз отладчика GDB 11.1 (первый выпуск серии 11.x, ветка 11.0 использовалась для разработки). GDB поддерживает отладку на уровне исходных текстов для широкого спектра языков программирования (Ada, C, C++, Objective-C, Pascal, Go, Rust и т.д.) на различных аппаратных (i386, amd64, ARM, Power, Sparc, RISC-V и т.д.) и программных платформах (GNU/Linux, *BSD, Unix, Windows, macOS).
Ключевые улучшения:
- В в интерфейс TUI (Text User Interface) добавлена поддержка действий мышью и возможности прокрутки содержимого колесом мыши. Обеспечен проброс в GDB комбинаций клавиш, не обрабатываемых в TUI.
- Добавлена поддержка механизма ARMv8.5 MTE (MemTag, Memory Tagging Extension), позволяющего привязать теги к каждой операции выделения памяти и организовать при доступе к памяти проверку указателя, который должен быть связан с корректным тегом. В протоколе удалённого управления отладкой для привязки тегов к памяти обеспечена поддержка пакетов «qMemTags» и «QMemTags».
- Изменена логика чтения файлов конфигурации. Файл .gdbinit теперь проверяется в следующем порядке: $XDG_CONFIG_HOME/gdb/gdbinit, $HOME/.config/gdb/gdbinit и $HOME/.gdbinit. Т.е. вначале в подкаталоге config, а уже потом в домашнем каталоге.
- В команде «break […] if CONDITION» прекращён вывод ошибки при недопустимости условия в определённых местах, если условие допустимо хотя бы в одном случае.
- Добавлена поддержка отладки core-дампов, сгенерированных для программ Cygwin, собранных для архитектуры x86_64.
- Добавлена поддержка типов с фиксированной запятой, а также констант DW_AT_GNU_numerator и DW_AT_GNU_denominator.
- Добавлена настройка «startup-quietly on|off» setting; when «on», аналогичная опции «-silent».
- В команде «ptype» реализованы опции /x» и «/d» для выбора шестнадцатеричного или десятичного исчисления при выводе размеров и смещений. Добавлена настройка «print type hex on|off» для использования шестнадцатеричных значений в выводе команды ‘ptype’.
- В команде «inferior» при вызове без аргументов обеспечен вывод текущего объекта отладки (inferior).
- Переработан вывод команды «info source».
- Добавлена команда «style version foreground | background | intensity» для управления стилем нумерации версий.
- Добавлены новые опции командной строки: «—early-init-command» («-eix»), «—early-init-eval-command» («-eiex»), «—qualified» (для команд ‘-break-insert’ и ‘-dprintf-insert’), «—force-condition» (для команд ‘-break-insert’ и ‘-dprintf-insert’), «—force» (для команды ‘-break-condition’).
- В команде «-file-list-exec-source-files’ разрешено указание регулярных выражений для отсеивания обрабатываемых исходных файлов. В вывод добавлено поле ‘debug-fully-read’ для информирования о степени загрузки отладочной информации.
- Внесены улучшения в Python API. Добавлены новые методы gdb.Frame.level() и db.PendingFrame.level() для возвращения уровня стека для объекта Frame. При срабатывании точки захвата (catchpoint) в Python API обеспечена передача gdb.BreakpointEvent вместо gdb.StopEvent. Добавлены настройки «python ignore-environment on|off» для игнорирования переменных окружения и «python dont-write-bytecode auto|on|off» для отключения записи байткода.
- Внесены улучшения в Guile API. Добавлены новые процедуры value-reference-value, value-rvalue-reference-value и value-const-value.
- В число обязательных сборочных зависимостей включена библиотека GMP (GNU Multiple Precision Arithmetic).
- Прекращена поддержка платформы ARM Symbian (arm*-*-symbianelf*).