Представлен релиз отладчика GDB 15.1 (первый выпуск серии 15.x, ветка 15.0 использовалась для разработки). GDB поддерживает отладку на уровне исходных текстов для широкого спектра языков программирования (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust и т.д.) на различных аппаратных (i386, amd64, ARM, Power, Sparc, RISC-V и т.д.) и программных платформах (GNU/Linux, *BSD, Unix, Windows, macOS).
Ключевые улучшения:
- Для сборки GDB и GDBserver теперь необходим компилятор, поддерживающий C++17 (как минимум GCC 9).
- Внесены улучшения в Python API. Добавлены функции gdb.notify_mi, gdb.missing_debug.register_handler и gdb.interrupt, класс gdb.missing_debug.MissingDebugInfo, модуль db.missing_debug, атрибуты gdb.Value.bytes и gdb.InferiorThread.ptid_string, константы gdb.SYMBOL_TYPE_DOMAIN, gdb.SYMBOL_FUNCTION_DOMAIN и gdb.SEARCH_*_DOMAIN. В объектах gdb.Inferior и gdb.InferiorThread реализована возможность добавления пользовательских атрибутов.
- Продолжена реализация протокола DAP (Debugger Adapter Protocol). Добавлена команда “set debug dap-log-level” для управления ведением логов для DAP. Добавлена поддержка запроса “cancel” и возможность формирования события “process”.
- В протокол удалённой отладки добавлена поддержка пакетов QThreadOptions и qIsAddressTagged, а также реализована команда “set/show remote thread-options-packet”.
- В GDBserver прекращена поддержка опций “–remote-debug” и “–event-loop-debug”, а также команд ‘monitor set remote-debug’ и ‘monitor set event-loop-debug’, вместо которых в опции “–debug” реализована возможность передачи разделённого запятыми списка компонентов для отладки (all, threads, event-loop и remote). Аналогично возможность указания компонентов реализована в команде ‘monitor set debug’.
- В индекс добавлена информация о функции main, что позволяет ускорить запуск при использовании с некоторыми большими исполняемыми файлами.
- Объявлены устаревшими MPX-команды “show/set mpx bound”, поддержка которых прекращена Intel в 2019 году.
- Добавлены новые команды:
- “set/show direct-call-timeout”
- “set/show indirect-call-timeout”
- “set/show unwind-on-timeout on|off”
- “set/show unwind-on-signal on|off”
- В командах “gcore” и “generate-core-file” добавлена поддержка оптимизации хранения пустых областей в генерируемых core-файлах.
Release.
Ссылка here.