URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 138726
[ Назад ]

Исходное сообщение
"Выпуск отладчика GDB 17"

Отправлено opennews , 21-Дек-25 10:59 
Представлен релиз отладчика 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)...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=64463


Содержание

Сообщения в этом обсуждении
"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 10:59 
Дебагер с функцией обхода защиты я считаю это пять.

"Выпуск отладчика GDB 17"
Отправлено zionist , 21-Дек-25 12:26 
Там нет обхода защиты, там есть поддержка механизма этой защиты.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 11:00 
Ну и вообще лудший отладчик

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 18:34 
Скажем спасибо dbx за предоставленный код. А то так бы и не начали писать.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 11:04 
Что лучше - gdb или lldb?

"Выпуск отладчика GDB 17"
Отправлено Аноншка , 21-Дек-25 13:41 
windbg или cdb

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 16:37 
Windbg - это сильно нишево, а GDB - многоплатформенно.

"Выпуск отладчика GDB 17"
Отправлено lucentcode , 21-Дек-25 16:21 
Однозначно GDB, он пока более фичастый. lldb очень похож, но поддерживает меньше архитектур, и не все возможности. При этом lldb умеет в альясы для GDB, и если вы знаете GDB, вы почти всегда так же комфортно сможете использовать и lldb, практически как прямую замену GDB.

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


"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 16:41 
Если вы плюсовик и пользуетесь g++, то вряд ли.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 12:08 
всегда им пользуюсь

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 12:14 
>аппаратные возможности процессоров Intel для защиты от перезаписи адреса возврата из функции в случае переполнения буфера в стеке.

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

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


"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 12:37 
Cи причем, если архитектура у вас гуляйвася? Какая архитектура такой и язык под нее, очевидно ведь.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 13:52 
>Настоящие сишники настолько хорошо пишут на С что даже интелу пришлось в процессор встраивать аппаратные костыли с защитой от таких профессионалов.

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


"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 03:47 
При том, что есть один язык, печально известный переполнениями буфера со времен червя Морриса, и это не ассемблер.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 15:46 
Это сработает только при компиляции с -fomit-frame-pointer.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 18:01 
А Intel вам сказал, что он это сделал исключительно ради сишников?

"Выпуск отладчика GDB 17"
Отправлено Анонимный БСДун , 21-Дек-25 12:21 
Shadow stack - это отличная идея!

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 16:47 
Вместе с swadow fleet.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 14:38 
Чуваки не осилили запилить к нему собственный стандартный UI.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 14:57 
сделали, консольный. Не нравится - не пользуйтесь

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 15:40 
Звучит как «жрите, что дают»… а, это оно и есть.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 23-Дек-25 07:02 
Ты видимо перепутал с проприетарщиками.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 16:49 
Вот он стандартный к нему UI https://www.gnu.org/software/emacs/manual/html_node/emacs/GD...

"Выпуск отладчика GDB 17"
Отправлено mos87 , 22-Дек-25 07:25 
+--------------------------------+--------------------------------+
|   GUD interaction buffer       |   Locals/Registers buffer      |
|--------------------------------+--------------------------------+
|   Primary Source buffer        |   I/O buffer for debugged pgm  |
|--------------------------------+--------------------------------+
|   Stack buffer                 |   Breakpoints/Threads buffer   |
+--------------------------------+--------------------------------+

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


"Выпуск отладчика GDB 17"
Отправлено mos87 , 22-Дек-25 07:31 
>If gdb-many-windows is non-nil, then M-x gdb displays the following frame layout:

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

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


"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 09:13 
> что Руководство Пользователя не есть мануал

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

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

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

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

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


"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 17:32 
Зачем "собственный стандартный"? Пусть GUI пишут специалисты в UI, а не специалисты в том как лучше дебажить программы.

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


"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 17:58 
Вот, например, не стандартный, но зато GUI: KDbg.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 12:10 
У gdb есть встроенный TUI, очень удобная штука, например, если нужно отслеживать состояния регистров

"Выпуск отладчика GDB 17"
Отправлено aname , 21-Дек-25 21:26 
С другой стороны, это ж опенсурс. Ну ты понял

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 04:09 
Десятки других смогли сделать GUI к gdb, наверное как раз потому что у него стандартизированный IO по stdin/stdout. Как там со стандартизацией GUI, кстати? Уже все перешли на проверенный рабочий X11? Ой, а, нужно новые GPU продать, а никто их чё-то покупать не хочет потому что всех всё устраивает, упс, что-то надо придумать... О!

"Выпуск отладчика GDB 17"
Отправлено Аноним , 23-Дек-25 07:05 
Вантузники ноют, что нет GUI. Это хороший признак для gdb. Так держать. Лично мне GUI не нужен.

"Выпуск отладчика GDB 17"
Отправлено adolfus , 07-Янв-26 02:16 
UI без надобности -- вы же не с помощью cat программы пишете. Нормальный редактор сам этот UI обеспеивает, подключаясь к отладчику. GDB предоставляет протокол, а как там уже редактор обеспечит взаимодействие, это не забота gdb.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 18:31 
>Суть защиты в том, что после передачи управления функции, адреса возврата сохраняются процессором не только в обычном стеке, но и в отдельном "теневом" стеке, который не может быть изменён напрямую.

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


"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 03:51 
Потому что LR от затирания адреса возврата никак не защищает - в non-leaf функциях LR выгружается/загружается со стека.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 18:40 
Очередное доказательство, что Сообщество справляется лучше корпораций. Отладчика лучше gdb так и нет.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 20:40 
Да, и написан на Си. Так что хватит звиздеть, что у языка Си есть какие-то нерешаемые проблемы. Си - язык прошлого, настоящего и будущего!

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 22:29 
gdb написан на C++

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 04:00 
Откуда ты это взял, шиз? Хоть в репозиторий загляни для приличия

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 07:05 
Так-то он прав. Файлы просто называются .c, а на самом деле код c++.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 09:57 
> Откуда ты это взял, шиз?

1. В репозиторий заглянул
2. Я много лет работаю с gdb, и когда он крашится - у него плюсовый трейс.

> Хоть в репозиторий загляни для приличия

Дак уже в отличия от тебя

Вот так выглядит работа с DWARF2 в gdb:
template<typename Elem, typename Alloc>                                        
static void                                                                    
file_write (FILE *file, const std::vector<Elem, Alloc> &vec)                    
{                                                                              
  if (!vec.empty ())                                                            
    file_write (file, vec.data (), vec.size () * sizeof (vec[0]));              
}                                                                              
                                                                                
/* In-memory buffer to prepare data to be written later to a file.  */              
class data_buf                                                                  
{                                                                              
public:                                                                                                                                                  
  /* Copy ARRAY to the end of the buffer.  */                                  
  void append_array (gdb::array_view<const gdb_byte> array)                    
  {                                                                            
    std::copy (array.begin (), array.end (), grow (array.size ()));            
  }                                                                            
                                                                                
  /* Copy CSTR (a zero-terminated string) to the end of buffer.  The            
     terminating zero is appended too.  */                                      
  void append_cstr0 (const char *cstr)                                          
  {                                                                            
    const size_t size = strlen (cstr) + 1;                                      
    std::copy (cstr, cstr + size, grow (size));                                
  }
...


"Выпуск отладчика GDB 17"
Отправлено Аноним , 23-Дек-25 07:07 
Значит надо переписать C++ код на чистый.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 12:40 
> Programming languages: Python, C, C++

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


"Выпуск отладчика GDB 17"
Отправлено Аноним , 23-Дек-25 07:08 
Чисты Си и только чистый Си. Остальные не нужны!

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 18:46 
Кто программирует на modula-2?
Вот реально, список в студию, плз.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 21:46 
Это вам, наверное, к программистам из Решетнёва.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 22:13 
Которые вылезли из Решетнёва?

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 22:50 
https://ru.wikipedia.org/wiki/Информационные_спутниковые_системы

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 12:57 
Я черепашкой программирую.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 18:54 
> Для выделения ошибок и предупреждений задействованы символы emoji.

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


"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 12:58 
Надо ещё QR-коды ввести.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 20:47 
А где smalltalk? GNU фаны считают его недостойным язычком?

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 21:54 
В 18-й, думаю, добавят Algol68. В GCC добавление уже одобрили.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 22:14 
Там и алгол69 будет.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 21-Дек-25 22:44 
Возвращаемое из функции значение как отлаживать?

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 02:16 
Можно выполнять построчно и выводить значение нужной переменной.

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 04:05 
rax
загугли System-V Calling ABI

"Выпуск отладчика GDB 17"
Отправлено Аноним , 22-Дек-25 20:45 
Любым образом останавливаешь выполнение внутре функции и делаешь finish. Я не уверен, что вывод возвращаемого значения на экран котируется за отладку возвращаемого значения, но если нет, то тебе стоит пояснить, что ты имеешь в виду.

"Выпуск отладчика GDB 17"
Отправлено Ivanov , 22-Дек-25 23:06 
GDB - шикарный отладчик.
В начале 00ых годов с помощью него кучу коммерческого софта от Avaya под Solaris "отучил" от лицензий :))
Благо что ассемблер для SPARC нормально знал (ну и опыт по crack'y для других платформ - уже был солидный).