GDB 14.1 уже выпущен, и это его новые возможности.

Отладчик GNU

GNU Debugger — стандартный отладчик для компилятора GNU. Это портативный отладчик, который можно использовать на различных платформах Unix.

Недавно Анонсирован выход новой версии отладчика GDB 14.1, это первая версия серии 14, в которую было добавлено большое количество новых функций, атрибутов, классов и событий, а также поддержка улучшений, исправлений ошибок и многое другое.

Для тех, кто не знает о GDB, следует знать, что это это отладчик проекта GNU, и этот отладчик позволяет вам «видеть», что происходит «внутри» другой программы во время ее работы, или что другая программа делала в момент сбоя.



GDB может делать четыре основных типа вещей (помимо других вещей в поддержку этих), чтобы помочь пользователю обнаружить ошибки при выполнении программ:



  1. Запустите программу, указав все, что может повлиять на ее поведение.
  2. Он имеет возможность остановить программу при определенных условиях.
  3. Посмотрите, что произошло, когда программа остановилась.
  4. Измените что-то в программе, чтобы пользователь мог экспериментировать с исправлением последствий одной ошибки и продолжать изучать другую.

Эти программы могут работать на той же машине, что и GDB (собственная), на другой машине (удаленной) или в симуляторе. GDB может работать в большинстве популярных вариантов UNIX и Microsoft Windows, а также в macOS.



GDB поддерживает отладку на уровне исходного кода для широкого спектра языков программирование, такое как: Ada, Ассемблер, C, C++, D, Fortran, Go, OpenCL, Objective-C, Modula-2, Pascal и Rust.

Основные новые возможности GDB 14.1

В этой новой версии GDB 14.1 это первоначальная комплексная поддержка протокол адаптера отладки (DAP), разработанный Microsoft и это позволяет реализовать универсальный отладчик, чтобы инструменты разработки могли взаимодействовать с различными отладчиками через адаптеры отладки, которые, в свою очередь, можно повторно использовать в нескольких инструментах разработки. По сути, это сводится к усилиям по поддержке нового отладчика в различных инструментах.

Еще одним заметным изменением в этой новой версии является Внесены улучшения в поддержку, такой как начальная поддержка целочисленных типов длиной более 64 бит, поддержка включения или отключения отдельных функций удаленной цели, а также улучшенная поддержка Ada для атрибутов Ada 2022 Enum_Rep и Enum_Val.



Кроме того, ГББ теперь распознает переменную среды NO_COLOR и имеет Улучшена поддержка AArch64, поскольку была добавлена ​​первоначальная поддержка расширения SME и SME2.

Кроме того, Функции и настройки GDB были удалены. которые уже поддерживаются в новой версии, например GDB 14.1 больше не совместим с AiX 4.x, 5.x и 6.x, поддержка GDB/MI версии 1 удалена.



Добавлена ​​функция $_shell для выполнения команды в оболочке. и вернуть результат, команда «list» теперь принимает «.» в качестве аргумента, чтобы напечатать местоположение точки выполнения в текущем кадре стека, добавлено »%V» в формат вывода команд printf и dprintf, Команда printf теперь ограничивает размер строк, полученных из значений, меньших значения параметра «max-value-size», а также добавлены новые команды отладки и обслуживания.

Об улучшениях поддержки Python, этот получил больше всего, и выделяется следующее:

  • Новые классы: gdb.Thread, gdb.unwinder.FrameId, gdb.ValuePrinter
  • Новые атрибуты: gdb.Lower.arguments, который сохраняет аргументы командной строки внизу, если они известны, gdb.Lower.main_name, который содержит имя «главного» нижнего, если оно известно, gdb.Breakpoint.Lower, gdb.Progspace.файл_символа, gdb.Progspace.имя_исполняемого_файла
  • Nuevas Funciones: gdb.execute_mi(КОМАНДА, [ARG]…), gdb.block_signals()
  • Новые методы: gdb.Value ‘to_array’, gdb.Progspace ‘objfile_for_address’, ‘gdb.Frame.static_link, gdb.Inferior ‘clear_env’, ‘set_env’ и ‘unset_env’ 
  • Новые события: gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent gdb.NewProgspaceEvent и gdb.FreeProgspaceEvent.
  • API дизассемблера модуля gdb.disassembler был расширен за счет поддержки стилей.

    gdb.parse_and_eval
  • Атрибут gdb.unwinder.Unwinder.enabled теперь может принимать только значения типа bool.

    Больше невозможно создать подкласс типа gdb.disassembler.DisassemblerResult.

Наконец, если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.




2023-12-03T15:40:24
приложений