Представлен релиз отладчика GDB 12.1 (первый выпуск серии 12.x, ветка 12.0 использовалась для разработки). GDB поддерживает отладку на уровне исходных текстов для широкого спектра языков программирования (Ada, C, C++, Objective-C, Pascal, Go, Rust и т.д.) на различных аппаратных (i386, amd64, ARM, Power, Sparc, RISC-V и т.д.) и программных платформах (GNU/Linux, *BSD, Unix, Windows, macOS).
Ключевые улучшения:
- По умолчанию включён многопоточный режим загрузки отладочных символов, ускоряющий запуск.
- Улучшена поддержка шаблонов C++.
- Реализована поддержка работы на платформе FreeBSD в асинхронном режиме (async).
- Предоставлена возможность отключения использования GNU Source Highlight и задействование для подсветки синтаксиса библиотеки Pygments.
- В команде “clone-inferior” реализована проверка копирования настроек TTY, CMD и ARGS из оригинального объекта отладки (inferior) в новый объект отладки. Также обеспечено копирование в новый объект отладки всех изменений переменных окружения, выполненных при помощи команд ‘set environment’ или ‘unset environment’.
- В команде “print” реализована поддержка вывода чисел с плавающей запятой с указанием формата базового значения, например, в шестнадцатеричном виде (“/x”).
- Добавлена поддержка запуска отладчика и GDBserver на архитектуре GNU/Linux/OpenRISC (or1k*-*-linux*). Добавлена поддержка отладки приложений для целевой платформы GNU/Linux/LoongArch (loongarch*-*-linux*). Прекращена поддержка целевой платформы S+core (score-*-*).
- GDB 12 объявлен последним выпуском для которого поддерживается сборка с использованием Python 2.
- Объявлен устаревшим и будет удалён в ветке GDB 13 режим совместимости с DBX.
- В программном интерфейсе управления GDB/MI разрешено применение команды ‘-add-inferior’ без параметров или вместе с флагом ‘–no-connection’ для наследования соединения из текущего объекта отладки или запуска без соединения.
- Внесены улучшения в Python API. Предоставлена возможность реализации команд GDB/MI на языке Python. Добавлены новые события gdb.events.gdb_exiting и gdb.events.connection_removed,
функция gdb.Architecture.integer_type(), объект gdb.TargetConnection, свойство gdb.Inferior.connection, метод gdb.RemoteTargetConnection.send_packet и атрибуты gdb.InferiorThread.details, gdb.Type.is_scalar и gdb.Type.is_signed.
Release.
Ссылка here.