Выпуск отладчика GDB 10
25 октября 2020 года
Представлен релиз отладчика 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).
Ключевые улучшения (Архивная копия от 30 мая 2022 на Wayback Machine):
- Добавлена поддержка новой отладочной цели BPF (bpf-unknown-none), позволяющей отлаживать программы eBPF, которые используются в ядре Linux для создания обработчиков, выполняемых в специальной виртуальной машине с JIT. Для обеспечения отладки в GDB добавлен симулятор BPF (Архивная копия от 6 сентября 2020 на Wayback Machine).
- Реализован экспериментальный режим отладки с использованием нескольких отладочных целей (мulti-target), который позволяет проводить одновременную отладку нескольких целевых соединений. Например, можно отлаживать несколько экземпляров контролируемого при помощи GDB процесса (inferior (Архивная копия от 15 апреля 2020 на Wayback Machine)), запущенного на разных внешних системах, или отлаживать локальный процесс одновременно с отладкой 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*.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.