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

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