25.11.2020

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


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

Добавить комментарий