The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

21.12.2025 09:40

Представлен релиз отладчика GDB 17.1 (первый выпуск серии 17.x, ветка 17.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).

Наиболее заметные улучшения:

  • Для систем x86-64 реализована поддержка теневого стека (shadow stack), позволяющего блокировать работу многих эксплоитов, используя аппаратные возможности процессоров Intel для защиты от перезаписи адреса возврата из функции в случае переполнения буфера в стеке. Суть защиты в том, что после передачи управления функции, адреса возврата сохраняются процессором не только в обычном стеке, но и в отдельном "теневом" стеке, который не может быть изменён напрямую. Перед выходом из функции адрес возврата извлекается из теневого стека и сверяется с адресом возврата из основного стека.
  • Добавлена возможность отладки Linux-программ, собранных для архитектуры AArch64 и использующих расширение GCS (Guarded Control Stack). GCS предоставляет средства для аппаратной защиты адресов возврата из функций и блокирования эксплоитов, использующих методы возвратно-ориентированного программирования (ROP - Return-Oriented Programming, эксплоит формируется из уже имеющихся кусков машинных инструкций, завершающихся инструкцией возврата управления).
  • Для систем с архитектурой rv64gc реализована полная поддержка записи процесса выполнения программы для отладки в обратном направлении и повторного воспроизведения участков кода.
  • В команду "info threads" добавлены опции "-stopped" и "-running" для показа только остановленных или только выполняемых потоков.
  • В команде "info sharedlibrary" на платформах Linux и FreeBSD обеспечен показ адресов для всего диапазона памяти, выделенного разделяемой библиотеке (ранее показывался только базовый адрес и адреса для секции .text).
  • Обеспечена возможность использования снимков состояния (checkpoint) в Linux при одновременной отладке несколько процессов.
  • Расширена поддержка пространств имён компоновщика (linker namespace).
  • Для выделения ошибок и предупреждений задействованы символы emoji.
  • На платформе Linux реализована встроенная возможность доступа к локальным переменным потоков (Thread-Local Storage, TLS), используемая при отсутствии библиотеки libthread_db. Возможность доступна для архитектур x86_64, aarch64, ppc64, s390x и riscv при сборке с GLIBC или MUSL.
  • Добавлена команда "set riscv numeric-register-names" для отображения регистров RISC-V c использованием их цифровых идентификаторов вместо ABI-имён.
  • Внесены улучшения в Python API. Добавлены новые классы gdb.Color и gdb.ParameterPrefix, атрибут gdb.Value.is_unavailable, функция gdb.warning(). Прекращена поддержка старых версий Python - поддерживается только Python 3.4 и новее.
  • Внесены улучшения в Guile API. Добавлен тип "<gdb:color>".
  • Расширены возможности протокола DAP (Debugger Adapter Protocol): реализована поддержка запросов "completions" и добавлена опция "--binary-output" для отключения преобразования символов перевода строки на платформе Windows.
  • Добавлены переменные $_colorsupport (список цветовых пространств, поддерживаемых терминалом), $linker_namespace_count и $_linker_namespace (список активных пространств имён компоновщика).
  • Добавлены опции "--disable-gdb-compile" для отключения подсистемы компиляции, а также "--disable-gdb-dwarf-support" и "--disable-gdb-mdebug-support" для отключения отладочной информации в форматах DWARF и mdebug/ecoff.
  • В gdbserver прекращена поддержка UST (static tracepoint).


  1. Главная ссылка к новости (https://www.mail-archive.com/i...)
  2. OpenNews: Выпуск отладчика GDB 16
  3. OpenNews: Проект OpenAI открыл Transformer Debugger, отладчик для моделей машинного обучения
  4. OpenNews: Выпуск системы динамической отладки SystemTap 5.0
  5. OpenNews: Для Linux представлена система динамической отладки BPFtrace (DTrace 2.0)
  6. OpenNews: Выпуск системной библиотеки Glibc 2.42 и набора утилит GNU Binutils 2.45
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64463-gdb
Ключевые слова: gdb, debug
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (58) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 10:59, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –10 +/
    Дебагер с функцией обхода защиты я считаю это пять.
     
     
  • 2.13, zionist (ok), 12:26, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Там нет обхода защиты, там есть поддержка механизма этой защиты.
     

  • 1.3, Аноним (1), 11:00, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Ну и вообще лудший отладчик
     
     
  • 2.39, Аноним (39), 18:34, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Скажем спасибо dbx за предоставленный код. А то так бы и не начали писать.
     

  • 1.4, Аноним (4), 11:04, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Что лучше - gdb или lldb?
     
     
  • 2.17, Аноншка (?), 13:41, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    windbg или cdb
     
     
  • 3.26, Аноним (26), 16:37, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Windbg - это сильно нишево, а GDB - многоплатформенно.
     
  • 2.25, lucentcode (ok), 16:21, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Однозначно GDB, он пока более фичастый. lldb очень похож, но поддерживает меньше архитектур, и не все возможности. При этом lldb умеет в альясы для GDB, и если вы знаете GDB, вы почти всегда так же комфортно сможете использовать и lldb, практически как прямую замену GDB.

    Но, в одном случае, при изучении современных C++ выражений, lldb может оказаться в некоторых случаях конкретном в этом более фичастым. Если вы плюсовик, lldb возможно, для вас лучший выбор.

     
     
  • 3.27, Аноним (26), 16:41, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если вы плюсовик и пользуетесь g++, то вряд ли.
     

  • 1.9, Аноним (9), 12:08, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    всегда им пользуюсь
     
  • 1.10, Аноним (10), 12:14, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    >аппаратные возможности процессоров Intel для защиты от перезаписи адреса возврата из функции в случае переполнения буфера в стеке.

    Настоящие сишники настолько хорошо пишут на С что даже интелу пришлось в процессор встраивать аппаратные костыли с защитой от таких профессионалов.

    Что естественно доказывает что раст не нужен.

     
     
  • 2.14, Аноним (14), 12:37, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Cи причем, если архитектура у вас гуляйвася? Какая архитектура такой и язык под нее, очевидно ведь.
     
  • 2.19, Аноним (19), 13:52, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Настоящие сишники настолько хорошо пишут на С что даже интелу пришлось в процессор встраивать аппаратные костыли с защитой от таких профессионалов.

    mov esp,eax. Причем тут Си, если это разрешено в машинных иструкциях?

     
     
  • 3.55, Аноним (55), 03:47, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • –4 +/
    При том, что есть один язык, печально известный переполнениями буфера со времен червя Морриса, и это не ассемблер.
     
  • 3.70, Аноним (70), 15:46, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это сработает только при компиляции с -fomit-frame-pointer.
     
  • 2.37, Аноним (26), 18:01, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А Intel вам сказал, что он это сделал исключительно ради сишников?
     

  • 1.12, Анонимный БСДун (?), 12:21, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Shadow stack - это отличная идея!
     
     
  • 2.28, Аноним (1), 16:47, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вместе с swadow fleet.
     

  • 1.21, Аноним (21), 14:38, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Чуваки не осилили запилить к нему собственный стандартный UI.
     
     
  • 2.23, Аноним (23), 14:57, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    сделали, консольный. Не нравится - не пользуйтесь
     
     
  • 3.24, Аноним (24), 15:40, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Звучит как «жрите, что дают»… а, это оно и есть.
     
     
  • 4.74, Аноним (-), 07:02, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ты видимо перепутал с проприетарщиками.
     
  • 2.30, Аноним (26), 16:49, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот он стандартный к нему UI https://www.gnu.org/software/emacs/manual/html_node/emacs/GDB-Graphical-Interf
     
     
  • 3.62, mos87 (ok), 07:25, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    +--------------------------------+--------------------------------+
    |   GUD interaction buffer       |   Locals/Registers buffer      |
    |--------------------------------+--------------------------------+
    |   Primary Source buffer        |   I/O buffer for debugged pgm  |
    |--------------------------------+--------------------------------+
    |   Stack buffer                 |   Breakpoints/Threads buffer   |
    +--------------------------------+--------------------------------+

    скриншоты, которые мы заслужыле

     
  • 3.63, mos87 (ok), 07:31, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >If gdb-many-windows is non-nil, then M-x gdb displays the following frame layout:

    Они там реально на всю голову ушибленные.
    Кто-нибудь обясните уже этим ГНУтым дидам, что Руководство Пользователя не есть мануал по погромирован на лишпе.

    И что клавиша Meta всегда была только на клавиатурах их любимых лишп-машин, никому не нужных и сдохших дцать лет назад.

     
     
  • 4.64, Аноним (64), 09:13, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > что Руководство Пользователя не есть мануал

    руководство не есть руководство, угу

    > по погромирован на лишпе.

    это руководство для эмакса, чего ты ожидал?

    > И что клавиша Meta всегда была только на клавиатурах их любимых лишп-машин, никому не нужных и сдохших дцать лет назад.

    а не безразлично, если ее можно задать?

     
  • 2.33, Аноним (33), 17:32, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Зачем "собственный стандартный"? Пусть GUI пишут специалисты в UI, а не специалисты в том как лучше дебажить программы.

    gdb имеет прекрасно описанный проток и каждый может написать свою веб-морду к нему. Причем даже встроенную в твой любимый редактор кода (как, например, сделано в vscode).

     
     
  • 3.36, Аноним (26), 17:58, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вот, например, не стандартный, но зато GUI: KDbg.
     
  • 3.66, Аноним (66), 12:10, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У gdb есть встроенный TUI, очень удобная штука, например, если нужно отслеживать состояния регистров
     
  • 2.46, aname (ok), 21:26, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    С другой стороны, это ж опенсурс. Ну ты понял
     
  • 2.59, Аноним (59), 04:09, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Десятки других смогли сделать GUI к gdb, наверное как раз потому что у него стандартизированный IO по stdin/stdout. Как там со стандартизацией GUI, кстати? Уже все перешли на проверенный рабочий X11? Ой, а, нужно новые GPU продать, а никто их чё-то покупать не хочет потому что всех всё устраивает, упс, что-то надо придумать... О!
     
     
  • 3.75, Аноним (75), 07:05, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вантузники ноют, что нет GUI. Это хороший признак для gdb. Так держать. Лично мне GUI не нужен.
     

  • 1.38, Аноним (38), 18:31, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Суть защиты в том, что после передачи управления функции, адреса возврата сохраняются процессором не только в обычном стеке, но и в отдельном "теневом" стеке, который не может быть изменён напрямую.

    А чего бы просто link register не добавить, как в aarch64?

     
     
  • 2.56, Аноним (55), 03:51, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что LR от затирания адреса возврата никак не защищает - в non-leaf функциях LR выгружается/загружается со стека.
     

  • 1.40, Аноним (40), 18:40, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Очередное доказательство, что Сообщество справляется лучше корпораций. Отладчика лучше gdb так и нет.
     
     
  • 2.43, Аноним (43), 20:40, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да, и написан на Си. Так что хватит звиздеть, что у языка Си есть какие-то нерешаемые проблемы. Си - язык прошлого, настоящего и будущего!
     
     
  • 3.51, Аноним (51), 22:29, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    gdb написан на C++
     
     
  • 4.57, Аноним (59), 04:00, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Откуда ты это взял, шиз? Хоть в репозиторий загляни для приличия
     
     
  • 5.60, Аноним (40), 07:05, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так-то он прав. Файлы просто называются .c, а на самом деле код c++.
     
  • 5.65, Аноним (51), 09:57, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    1 В репозиторий заглянул 2 Я много лет работаю с gdb, и когда он крашится - у ... большой текст свёрнут, показать
     
     
  • 6.76, Аноним (75), 07:07, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Значит надо переписать C++ код на чистый.
     
  • 4.67, Аноним (67), 12:40, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Programming languages: Python, C, C++

    Без Си никуда.

     
     
  • 5.77, Аноним (75), 07:08, 23/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Чисты Си и только чистый Си. Остальные не нужны!
     

  • 1.41, Аноним (41), 18:46, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто программирует на modula-2?
    Вот реально, список в студию, плз.
     
     
  • 2.47, Аноним (26), 21:46, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это вам, наверное, к программистам из Решетнёва.
     
     
  • 3.49, Аноним (1), 22:13, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Которые вылезли из Решетнёва?
     
     
  • 4.53, Аноним (26), 22:50, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    https://ru.wikipedia.org/wiki/Информационные_спутниковые_системы
     
  • 2.68, Аноним (67), 12:57, 22/12/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.42, Аноним (26), 18:54, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Для выделения ошибок и предупреждений задействованы символы emoji.

    Вот она, киллерфича выпуска!

     
     
  • 2.69, Аноним (67), 12:58, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Надо ещё QR-коды ввести.
     

  • 1.44, Аноним (44), 20:47, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А где smalltalk? GNU фаны считают его недостойным язычком?
     
     
  • 2.48, Аноним (26), 21:54, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В 18-й, думаю, добавят Algol68. В GCC добавление уже одобрили.
     
     
  • 3.50, Аноним (1), 22:14, 21/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Там и алгол69 будет.
     

  • 1.52, Аноним (52), 22:44, 21/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Возвращаемое из функции значение как отлаживать?
     
     
  • 2.54, Аноним (40), 02:16, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Можно выполнять построчно и выводить значение нужной переменной.
     
  • 2.58, Аноним (59), 04:05, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    rax
    загугли System-V Calling ABI
     
  • 2.71, Аноним (-), 20:45, 22/12/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Любым образом останавливаешь выполнение внутре функции и делаешь finish. Я не уверен, что вывод возвращаемого значения на экран котируется за отладку возвращаемого значения, но если нет, то тебе стоит пояснить, что ты имеешь в виду.
     

  • 1.72, Ivanov (??), 23:06, 22/12/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    GDB - шикарный отладчик.
    В начале 00ых годов с помощью него кучу коммерческого софта от Avaya под Solaris "отучил" от лицензий :))
    Благо что ассемблер для SPARC нормально знал (ну и опыт по crack'y для других платформ - уже был солидный).
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру