Представлен релиз отладчика 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*).
Release.
Ссылка here.