Представлен релиз отладчика GDB 18.1 (первый выпуск серии 18.x, ветка 18.0 использовалась для разработки). GDB поддерживает отладку на уровне исходных текстов для широкого спектра языков программирования (C, C++, D, Go, Objective-C, Fortran, OpenCL C, Pascal, Rust, ассемблер, Modula-2 и Ada) на различных аппаратных (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch и т.д.) и программных платформах (GNU/Linux, *BSD, Unix, Windows, macOS).
Наиболее заметные улучшения:
- Добавлена поддержка платформ GNU/Linux/MicroBlaze (microblazeel-*linux*) и AArch64 MinGW (aarch64-*-mingw*). Объявлена устаревшей и намечена для удаления 32-разрядная архитектура s390 (s390-*).
- Для платформы Windows реализована поддержка режима «non-stop» (для Windows 10 и новее), блокировки планировщика командой «set scheduler-locking on» и нативных переменных TLS (Thread Local Storage). При запуске в Windows Terminal обеспечена поддержка 24-битных цветов, emoji и кодировки UTF-8. В интерфейсах CLI, TUI, MI и DAP включена нормализация использование слэша в файловых путях (всегда используется C:/proj/src/main.c вместо C:/proj/srcmain.c)
- Для решения проблем с поиском типов в индекс .gdb_index теперь добавляются все отладочные символы типов.
- В команде «info locals» реализовано отображение аннотации «shadowed» для внешних переменных, перекрываемых внутренними переменными с тем же именем. Для управления выводом добавлена настройка «set print shadowed on|off».
- В командах «set args», «run», «start» и «starti» реализована возможность передачи аргументов, содержащих символы новой строки, заключённые в кавычки.
- В GDB и gdbserver добавлен флаг «—no-escape-args» для отключения экранирования специальных символов в аргументах.
- Для архитектуры AArch64 реализована поддержка регистра FPMR (Floating Point Mode Register).
- Добавлена начальная поддержка загрузки core-файлов, сформированных на системах с поддержкой Intel AMX.
- Добавлена поддержка событий трассировки, обрабатываемых библиотекой libipt 2.2.
- При отладке через последовательный порт добавлена возможность указания нестандартных скоростей передачи.
- В команду help добавлен режим «essential» с обзором минимального набора команд, которые могут потребоваться новому пользователю GDB.
- Добавлены команды:
- set/show/unset local-environment — аналог «set/show/unset environment», влияющий на окружение подпроцессов, запускаемых самим GDB (например, через shell или pipe).
- save history, save skip, save user — сохраняет в файл историю команд, операции skip и пользовательские команды.
- info proc environ — показывает переменные окружения процесса.
- set/show progress-bars enabled — управление показом индикаторов прогресса.
- delete skip, enable skip, disable skip — псевдонимы команд skip delete/enable/disable.
- set/show debug gnu-ifunc и set/show debug ctf.
- Удалена поддержка первой версии формата DWP (DWARF Package File), форматов отладочной информации stabs и mdebug. Прекращена возможность сохранении результата трассировки в формате CTF (Common Trace Format).
- В следующей версии запланировано разделение режимов Windows ABI GNU (для кода, сгенерированного через инструментарий MinGW) и MSVC (для кода, собранного компиляторами MSVC и Clang). Для выбора Windows ABI в команде «set osabi» потребуется указывать значения «Windows-GNU» и «Windows-MSVC». Ныне используемое значение Windows автоматически будет выбирать нужный режим в зависимости от аргумента «—target» (—target=x86_64-pc-windows-msvc или —target=x86_64-w64-mingw32).
Источник: http://www.opennet.ru/opennews/art.shtml?num=66345
