Представлен релиз отладчика GDB 14.1 (первый выпуск серии 14.x, ветка 14.0 использовалась для разработки). GDB поддерживает отладку на уровне исходных текстов для широкого спектра языков программирования (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust и т.д.) на различных аппаратных (i386, amd64, ARM, Power, Sparc, RISC-V и т.д.) и программных платформах (GNU/Linux, *BSD, Unix, Windows, macOS).
Ключевые улучшения:
- Кодовая база переведена на использование стандарта C++17. Для сборки GCC теперь необходим компилятор, поддерживающий C++17 (как минимум GCC 9).
- В индекс добавлена информация о функции main, что позволяет ускорить запуск при использовании с некоторыми большими исполняемыми файлами.
- Прекращена поддержка ОС AIX 4.x, 5.x и 6.x (в качестве минимально поддерживаемой версии AIX заявлен выпуск 7.1).
- Добавлена начальная встроенная поддержка протокола DAP (Debugger Adapter Protocol).
- Добавлена поддержка переменной окружения NO_COLOR.
- Добавлена начальная поддержка целочисленных типов, размером больше 64 битов.
- Добавлена поддержка точек останова, привязанных к отдельным объектам отладки (при отладке нескольких процессов).
- Добавлена функция “$_shell” для запуска команды в командной оболочке и возвращения результата.
- Внесены улучшения в Python API:
- Добавлены классы gdb.Thread, gdb.unwinder.FrameId и gdb.ValuePrinter.
- Добавлены атрибуты gdb.Inferior.arguments, gdb.Inferior.main_name, gdb.Breakpoint.inferior, gdb.Progspace.symbol_file, gdb.Progspace.executable_filename.
- Добавлены функции
gdb.execute_mi(COMMAND, [ARG]…), gdb.block_signals(). - Добавлены методы gdb.Frame.static_link, gdb.Inferior ‘clear_env’, ‘set_env’ и ‘unset_env’, gdb.Type ‘is_array_like’ и ‘is_string_like’, gdb.Value ‘assign’, gdb.Value ‘to_array’, gdb.Progspace ‘objfile_for_address’, gdb.LazyString __str__. Добавлены события gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent, gdb.NewProgspaceEvent, gdb.FreeProgspaceEvent.
- Добавлена возможность включения и выключения отдельных возможностей для удалённых отладочных целей.
- Улучшена поддержка архитектуры AArch64. Добавлена поддержка расширений SME (Scalable Matrix Extension) и SME2.
- Улучшена поддержка языка Ada и спецификации Ada 2022.
- В команду ‘list’ добавлена поддержка аргумента ‘.’ для вывода местоположения точки выполнения в текущем кадре стека.
- В команды printf и dprintf добавлен спецификатор формата ‘%V’.
- В команде printf размер строки, извлекаемой из объекта отладки, ограничен значением настройки ‘max-value-size’.
- Добавлена сборочная опция “–additional-debug-dirs=PATH”, задающая значение по умолчанию для параметра ‘debug-file-directory’.
- Добавлена новая команда “info main” для извлечения символа main, указывающего на точку входа в программу.
- Добавлены новые команды:
- “set debug breakpoint on|off”
- “set tui mouse-events [on|off]”
- “set always-read-ctf on|off”
- “maintenance print record-instruction [ N ]”
- “maintenance info frame-unwinders”
- “maintenance wait-for-index-cache”
Release.
Ссылка here.