Выпуск отладчика GDB 18 - QubStore

Выпуск отладчика GDB 18

GDB 18.1 — первый стабильный релиз ветки 18.x: отладчик научился работать с MicroBlaze Linux и AArch64 MinGW, а также получил массу улучшений для Windows.

GNU Debugger поддерживает отладку на уровне исходного кода для 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 10 и новее реализован режим non-stop, блокировка планировщика через «set scheduler-locking on» и работа с нативными переменными TLS. В 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» можно передавать аргументы с символами новой строки, если заключить их в кавычки. Добавлен флаг «—no-escape-args» для отключения экранирования специальных символов.

Для AArch64 появилась поддержка регистра FPMR (Floating Point Mode Register). Добавлена начальная загрузка core-файлов, сформированных системами с Intel AMX, и поддержка событий трассировки через libipt 2.2. При отладке по последовательному порту можно задавать нестандартные скорости передачи. В команду help добавлен режим «essential» с обзором минимального набора команд для новичков. Среди новых команд: set/show/unset local-environment (аналог environment для подпроцессов GDB), save history/skip/user, info proc environ, set/show progress-bars enabled, delete/enable/disable skip, а также set/show debug gnu-ifunc и ctf.

Из отладчика убрали поддержку первой версии формата DWP, отладочной информации stabs и mdebug, а также сохранение трассировки в формате CTF. В следующей версии планируется разделить Windows ABI GNU (MinGW) и MSVC (MSVC и Clang): в команде «set osabi» понадобится указывать «Windows-GNU» или «Windows-MSVC». Текущее значение Windows будет автоматически выбирать режим в зависимости от аргумента «—target» (—target=x86_64-pc-windows-msvc или —target=x86_64-w64-mingw32).

Ссылка на основную публикацию