Представлен релиз отладчика GDB 17.1 (первый выпуск серии 17.x, ветка 17.0 использовалась для разработки). GDB поддерживает отладку на уровне исходных текстов для широкого спектра языков программирования (Ada, C, C++, D, Fortran, Go, Objective-C, Modula-2, Pascal, Rust и т.д.) на различных аппаратных (i386, amd64, ARM, Power, Sparc, RISC-V, LoongArch и т.д.) и программных платформах (GNU/Linux, *BSD, Unix, Windows, macOS).
Ukuthuthukiswa okuphawuleka kakhulu:
- Для систем x86-64 реализована поддержка теневого стека (shadow stack), появившегося в ядре Linux 6.6 и позволяющего блокировать работу многих эксплоитов, используя аппаратные возможности процессоров Intel для защиты от перезаписи адреса возврата из функции в случае переполнения буфера в стеке. Суть защиты в том, что после передачи управления функции, адреса возврата сохраняются процессором не только в обычном стеке, но и в отдельном «теневом» стеке, который не может быть изменён напрямую. Перед выходом из функции адрес возврата извлекается из теневого стека и сверяется с адресом возврата из основного стека.
- Добавлена возможность отладки Linux-программ, собранных для архитектуры AArch64 и использующих расширение GCS (Guarded Control Stack). GCS предоставляет средства для аппаратной защиты адресов возврата из функций и блокирования эксплоитов, использующих методы возвратно-ориентированного программирования (ROP — Return-Oriented Programming, эксплоит формируется из уже имеющихся кусков машинных инструкций, завершающихся инструкцией возврата управления).
- Kumasistimu anesakhiwo se-rv64gc, ukusekelwa okugcwele kokuqopha inqubo yokusebenzisa uhlelo kuye kwasetshenziswa ekubuyiseleni amaphutha kanye nokuphinda kusetshenziswe izingxenye zekhodi.
- Umyalo othi "izingxoxo zolwazi" manje unezinketho "ezimisiwe" kanye "nezisebenzayo" ukukhombisa izingxoxo ezimisiwe noma ezisebenzayo kuphela.
- В команде «info sharedlibrary» на платформах Linux и FreeBSD обеспечен показ адресов для всего диапазона памяти, выделенного разделяемой библиотеке (ранее показывался только базовый адрес и адреса для секции .text).
- Обеспечена возможность использования снимков состояния (checkpoint) в Linux при одновременной отладке несколько процессов.
- Ukusekelwa okwandisiwe kwezikhala zamagama ze-linker.
- Izimpawu ze-emoji zisetshenziselwa ukugqamisa amaphutha nezixwayiso.
- Esikhathini yesikhulumi Linux реализована встроенная возможность доступа к локальным переменным потоков (Thread-Local Storage, TLS), используемая при отсутствии библиотеки libthread_db. Возможность доступна для архитектур x86_64, aarch64, ppc64, s390x и riscv при сборке с GLIBC или MUSL.
- Kwengezwe umyalo othi "set riscv numeric-register-names" ukuze kuboniswe amarejista e-RISC-V kusetshenziswa ama-ID awo ezinombolo esikhundleni samagama e-ABI.
- Kwenziwe intuthuko ku-Python API. Amakilasi amasha, i-gdb.Color kanye ne-gdb.ParameterPrefix, isici se-gdb.Value.is_unavailable, kanye nomsebenzi we-gdb.warning() kungeziwe. Ukusekelwa kwezinguqulo ze-Python ezindala kuyekiwe—i-Python 3.4 kuphela kanye nentsha iyasekelwa.
- Kuthuthukiswe i-Guile API. " ".
- Расширены возможности протокола DAP (Debugger Adapter Protocol): реализована поддержка запросов «completions» и добавлена опция «—binary-output» для отключения преобразования символов перевода строки на платформе Windows.
- Kungezwe iziguquguquko $_colorsupport (uhlu lwezikhala zemibala ezisekelwa yi-terminal), $linker_namespace_count kanye $_linker_namespace (uhlu lwezikhala zamagama ezisebenzayo ze-linker).
- Kwengezwe izinketho "--disable-gdb-compile" ukuze kukhutshazwe uhlelo olungaphansi lokuhlanganiswa, kanye "--disable-gdb-dwarf-support" kanye "--disable-gdb-mdebug-support" ukuze kukhutshazwe ulwazi lokulungisa amaphutha kumafomethi e-DWARF kanye ne-mdebug/ecoff.
- I-Gdbserver iyeke ukusekela i-UST (i-static tracepoint).
Source: opennet.ru
