Недавно Анонсирован выход новой версии отладчика GDB 14.1, это первая версия серии 14, в которую было добавлено большое количество новых функций, атрибутов, классов и событий, а также поддержка улучшений, исправлений ошибок и многое другое.
Для тех, кто не знает о GDB, следует знать, что это это отладчик проекта GNU, и этот отладчик позволяет вам «видеть», что происходит «внутри» другой программы во время ее работы, или что другая программа делала в момент сбоя.
GDB может делать четыре основных типа вещей (помимо других вещей в поддержку этих), чтобы помочь пользователю обнаружить ошибки при выполнении программ:
- Запустите программу, указав все, что может повлиять на ее поведение.
- Он имеет возможность остановить программу при определенных условиях.
- Посмотрите, что произошло, когда программа остановилась.
- Измените что-то в программе, чтобы пользователь мог экспериментировать с исправлением последствий одной ошибки и продолжать изучать другую.
Эти программы могут работать на той же машине, что и 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.
Наконец, если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.