Представлен релиз отладчика GDB 10.1 (первый выпуск серии 10.x, ветка 10.0 использовалась для разработки). GDB поддерживает отладку на уровне исходных текстов для широкого спектра языков программирования (Ada, C, C++, Objective-C, Pascal, Go, Rust и т.д.) на различных аппаратных (i386, amd64, ARM, Power, Sparc, RISC-V и т.д.) и программных платформах (GNU/Linux, *BSD, Unix, Windows, macOS).
Ключевые улучшения:
- Добавлена поддержка новой отладочной цели BPF (bpf-unknown-none), позволяющей отлаживать программы eBPF, которые используются в ядре Linux для создания обработчиков, выполняемых в специальной виртуальной машине с JIT. Для обеспечения отладки в GDB добавлен симулятор BPF.
- Реализован экспериментальный режим отладки с использованием нескольких отладочных целей (мulti-target), который позволяет проводить одновременную отладку нескольких целевых соединений. Например, можно отлаживать несколько экземпляров контролируемого при помощи GDB процесса (inferior), запущенного на разных внешних системах, или отлаживать локальный процесс одновременно с отладкой core-дампа.
- Добавлена поддержка сервиса debuginfod, представляющего собой HTTP-сервер для отдачи отладочной информации ELF/DWARF и исходных текстов. При сборке с поддержкой debuginfod, GDB может автоматически подсоединяться к серверам debuginfod для загрузки недостающей отладочной информации об обрабатываемых файлах или разделения отладочных файлов и исходных текстов для отлаживаемого исполняемого файла. Для сборки GDB с debuginfod в скрипте configure следует указать опцию «—with-debuginfod» и обеспечить доступ к библиотеке libdebuginfod, поставляемой в наборе elfutils.
- Предоставлена возможность отладки 32-разрядных программ Windows в 64-разрядной сборке GDB.
- Проведена работа по сокращению времени запуска через включение по умолчанию быстрой загрузки отладочных символов в многопоточном режиме.
- Внесены улучшения в интерфейс TUI (Text User Interface), например, появилась поддержка горизонтальной расстановки окон.
- При прикреплении процесса реализовано определение не соответствия между прикрепляемым процессом и процессом, ранее загруженным в GDB.
- В команде «alias» реализована возможность задания аргументов по умолчанию, которые будут всегда передаваться целевой команде при запуске команды-псевдонима, помимо аргументов указанных пользователем.
- При выводе справки теперь отсеиваются дубликаты и полная документация показывается только один раз, без повторения для команд-псевдонимов. Команда ‘help aliases’ теперь показывает только псевдонимы, определённые пользователем, а встроенные псевдонимы показываются вместе с исходной командой к которой они привязаны.
- Добавлены новые команды:
- «set exec-file-mismatch» и «show exec-file-mismatch» для установки (ask|warn|off) и показа содержимого опции ‘exec-file-mismatch’, определяющей реакцию при выявлении расхождений между прикрепляемым и уже загруженным процессом в GDB.
- «tui new-layout NAME WINDOW WEIGHT [WINDOW WEIGHT]…» для определения раскладки окон в интерфейсе TUI.
- «maintenance print xml-tdesc [FILE]» для вывода описания текущего документа XML.
- «maintenance print core-file-backed-mappings» для вывода таблицы маппинга, загруженной из core-файлов (формат вывода напоминает команду «info proc mappings»).
- Добавлена возможность сборки GDB с GNU Guile 3.0 и 2.2 (ранее поддерживался только Guile 2.0). Внесена порция улучшений в API для Python и Guile.
- В GDBserver добавлена поддержка платформ RISC-V GNU/Linux и ARC GNU/Linux.
- В GDBserver прекращена поддержка платформ
- i[34567]86-*-lynxos*,
- powerpc-*-lynxos*,
- i[34567]86-*-nto*,
- bfin-*-*linux*,
- crisv32-*-linux*,
- cris-*-linux*,
- m32r*-*-linux*,
- tilegx-*-linux*,
- arm*-*-mingw32ce*,
- i[34567]86-*-mingw32ce*.
Источник: https://www.opennet.ru/opennews/art.shtml?num=53956