The OpenNET Project / Index page

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



"Выпуск отладчика GDB 16"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск отладчика GDB 16"  +/
Сообщение от opennews (??), 18-Янв-25, 21:47 
Представлен релиз отладчика GDB 16.1 (первый выпуск серии 16.x, ветка 16.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=62582

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Выпуск отладчика GDB 16"  +7 +/
Сообщение от Аноним (1), 18-Янв-25, 21:47 
одно из основополагающих опенсорс творений, как линукс, куему, иксы и файрфокс

всем присесть и три раза ку

Ответить | Правка | Наверх | Cообщить модератору

2. "Выпуск отладчика GDB 16"  –9 +/
Сообщение от Аноним (2), 18-Янв-25, 21:50 
Дебажу принтами зачем нужен сабж ума не приложу. Есть подробное зачем оно надо?
Ответить | Правка | Наверх | Cообщить модератору

5. "Выпуск отладчика GDB 16"  +13 +/
Сообщение от Аноним (5), 18-Янв-25, 22:08 
Ношу воду коромыслом с реки, зачем мне водопровод, ума не приложу.
Ответить | Правка | Наверх | Cообщить модератору

8. "Выпуск отладчика GDB 16"  –7 +/
Сообщение от Аноним (8), 18-Янв-25, 22:35 
А так деблохатор - это как раз таки воду коромыслом. Водопровод - это языки, которым оно не нужно как класс.
Ответить | Правка | Наверх | Cообщить модератору

10. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (-), 18-Янв-25, 22:53 
> А так деблохатор - это как раз таки воду коромыслом. Водопровод - это языки,
> которым оно не нужно как класс.

А что за языки такие волшебные, что на них программы - без багов?! Я б взял парочку.

Ответить | Правка | Наверх | Cообщить модератору

12. "Выпуск отладчика GDB 16"  –2 +/
Сообщение от Аноним (12), 19-Янв-25, 00:01 
Кто же его не знает? Швятой Rust.
Ответить | Правка | Наверх | Cообщить модератору

22. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (22), 19-Янв-25, 11:32 
> Кто же его не знает? Швятой Rust.

Не, вот на минутку. На нем не то что просто баги, на нем даже CVE бывают. При том даже прямо в его стдлибе.

И вот что хрустики делают если например сложное многопоточное месиво через неделю работы ловит из незабвенный panic? Или как они на ходу состояние программы смотрят, если она начинает вытворять что-то не то?

Ответить | Правка | Наверх | Cообщить модератору

14. "Выпуск отладчика GDB 16"  +/
Сообщение от Витюшка (?), 19-Янв-25, 01:12 
Вообще есть один такой (дебаггер ему пока не нужен в практическом смысле слова, да его и нет 🤷‍♀️) - это язык Nu.

И это единственный из 30 языков программирования, которому "не нужен" дебагер. И скажу честно - я в шоке.

Ты просто берёшь кусок кода и вставляешь его в оболочку NuShell - и видишь результат. Настолько атомарны конструкции языка.

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

17. "Выпуск отладчика GDB 16"  +1 +/
Сообщение от Аноним (17), 19-Янв-25, 03:45 
Предыдущие попытки создать структурированные пайплайны тебя ничему не научили?
Ответить | Правка | Наверх | Cообщить модератору

23. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (-), 19-Янв-25, 11:47 
> Вообще есть один такой (дебаггер ему пока не нужен в практическом смысле
> слова, да его и нет 🤷‍♀️) - это язык Nu.

А, ну если дебагера нет - он, конечно "не нужен".

> И это единственный из 30 языков программирования, которому "не нужен" дебагер. И
> скажу честно - я в шоке.
> Ты просто берёшь кусок кода и вставляешь его в оболочку NuShell -
> и видишь результат. Настолько атомарны конструкции языка.

Ага, а большие, сложне программы, с нетривиальными взаимодействиями между компонентами - как? Или они просто это не практикуют - и тогда и проблемы нет? В простых вещах мне и на сишке дебагер - нахрен не упал.

Теперь возьмем жирный плюсатый проект с многопоточностью, бинарем 10 мегз и проч, и когда он через неделю упадет по фиг знает какой причине - призадумаемся что иногда и дебагер не такая уж плохая штука.

Вот прямо сейчас у меня есть кордамп с багом который я видел 1 раз за всю мою жизнь. И, конечно, я понятия не имею - как такое вообще сделать можно было. Но я более-менее вижу состояние программы на момент отвала - целиком - и понимаю в каком именно месте она споткнулась. Это дает шанс этот баг - зарулить.

Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

32. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (32), 19-Янв-25, 15:54 
> Ношу воду коромыслом с реки, зачем мне водопровод, ума не приложу.

Раз уж взялись метафорами говорить ... У нас в деревне зимой проще воду в баню по субботам ведром принести. Т.к. в -30 водопровод однозначно порвет, а шланг потом невозможно обратно свернуть, не сломав. Это я к тому, что ненужно скоропалительно отвергать что бы то ни было.

Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору

39. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (39), 19-Янв-25, 16:56 
А я и не отвергаю. Но вот сверху водопровод однозначон отвергают.
Ответить | Правка | Наверх | Cообщить модератору

40. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (39), 19-Янв-25, 16:58 
P.S. Впрочем, жить в деревне, да в –30° в баню бегать… такое себе.
Ответить | Правка | Наверх | Cообщить модератору

9. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (-), 18-Янв-25, 22:52 
> Дебажу принтами зачем нужен сабж ума не приложу. Есть подробное зачем оно надо?

Если у тебя раз в неделю грохается здоровая многопоточная программа... то вот это может быть несколько несподручно.

Т.е. одно дело если ты получил неведомый трейс выполнения который фиг знает как воспроизвести - не говоря о хзкаком внутреннем состоянии, и другое - если вот тебе core dump и изучай себе наздоровье. И так уже бывает гораздо понятнее в чем дело. Хотя тоже без гарантий.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

16. "Выпуск отладчика GDB 16"  +1 +/
Сообщение от Аноним (-), 19-Янв-25, 01:29 
>> Дебажу принтами зачем нужен сабж ума не приложу. Есть подробное зачем оно надо?
> Если у тебя раз в неделю грохается здоровая многопоточная программа...

... то и дебажить ее тоже такое себе удовольствие.

Ответить | Правка | Наверх | Cообщить модератору

28. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (-), 19-Янв-25, 13:20 
>>> Дебажу принтами зачем нужен сабж ума не приложу. Есть подробное зачем оно надо?
>> Если у тебя раз в неделю грохается здоровая многопоточная программа...
> ... то и дебажить ее тоже такое себе удовольствие.

См выше про кордамп который я 1 раз в жизни видел. По другому такое особо и не получится.

Ответить | Правка | Наверх | Cообщить модератору

20. "Выпуск отладчика GDB 16"  +1 +/
Сообщение от Аноним другой (?), 19-Янв-25, 09:29 
Как-то в голову не пришло, что отладчиком можно дампы отлаживать.

Со своей стороны про отладку больших систем могу сказать, что после того как современные девопсы стали всё деплоить контейнерами, отобрав возможность заходить на прод и производить какие-то действия (типа подправил код, добавил принтов, перезапустил, увидел результат), приходится в систему вставлять тонны логов и логировать всё подряд. По сути при возникновении проблемы оказывается, что "принты" уже есть и результат уже лежит в графане.

Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

11. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (11), 18-Янв-25, 22:56 
ты забыл добавить префиксом await к своему посту
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

15. "Выпуск отладчика GDB 16"  +/
Сообщение от _kp (ok), 19-Янв-25, 01:21 
>>Дебажу принтами

Одно другому не мешает, дополняет, и более того, где то уместней логи, а где то без отладчика ад.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

26. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (26), 19-Янв-25, 13:01 
Я когда пишу под DOS, там тоже нет поддержки нормальный дебаггеров. Только TD32, который не поддерживается HX, и WD. Оба не умеют в современные форматы отладочной информации. Т.е. средства разработки тоже нужно юзать древние. Дебагать принтами конечно классно, но все равно не удобно. Другие классные лудитские медоды дебагинга - юзать волшебный макрос #define Breakpoint asm volatile inline ("int 3":::). Метод исключения - комментить куски кода, пока не найдешь тот, который вызывает ошибку. Какие еще извращения вы знаете?
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

31. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (5), 19-Янв-25, 14:55 
Это на чём вы пишете под DOS, что отладочная информация у вас в современном формате, а отладчика нет?
Ответить | Правка | Наверх | Cообщить модератору

37. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (37), 19-Янв-25, 16:33 
Вроде Free Pascal умеет для Dos
Ответить | Правка | Наверх | Cообщить модератору

42. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (39), 19-Янв-25, 18:32 
Да не только он умеет, вопрос в другом — что сейчас умеет собирать под DOS, но не имеет нормального отладчика?
Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (37), 19-Янв-25, 21:02 
В Open Watcom есть свой отладчик , который понимает dwarf, а Free pascal , bruce's c и Djgpp и nasm не делают свои отладчики
Ответить | Правка | Наверх | Cообщить модератору

48. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (5), 19-Янв-25, 21:08 
> Free pascal

Прямо нет отладчика? Что-то не верится.

> Djgpp

Вроде ж всегда там GDB был.

Ответить | Правка | Наверх | Cообщить модератору

41. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (-), 19-Янв-25, 16:59 
> Дебагать принтами конечно классно, но все равно не удобно.

В досе конечно неудобно. Нужен PAGER с возможностью скролла и поиска. И конечно же редирекция вывода в пайп. В запущенных случаях можно в текстовый редактор засунуть, но досовый текстовый редактор не вытащит больше 64Kb текста.

А, ну и сверху, если мы говорим о C, я б написал препроцессор к C, который бы добавлял няшные конструкции для отладочной печати. Чтоб без printf("%d") и тп. Нужно что-нибудь попроще, типа dbgprint("my_struc is {my_struc} now"). Плюс нужен аналог лисповой функции print, которая выводит значение ей переданное и возвращает это значение, то есть имея что-нибудь типа:

int result = foo() + bar();

можно было бы преобразоваь это в:

int result = dbg(foo()) + dbg(bar());

и узнат что там foo с bar возвращают.

Но лучше это делать не функцией, а препроцессором, чтобы тот выводил бы не просто значение, а что-то такое:

my_source.c:42: foo() == 3.14
my_source.c:42: bar() == "Hello world"

> волшебный макрос #define Breakpoint asm volatile inline ("int 3":::).

Чем это отличается от printf(/* all locals */)? Если ты знаешь все локальные переменные, то ты вполне можешь рассуждать о том, что делает код без помощи отладчика. Бывают ситуации, когда это не так, но они все делятся на два класса: 1. смотрящему в код следует сменить профессию; 2. тому кто написал код следует сменить профессию, причём принудительно и с применением избыточной жестокости.

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

33. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (32), 19-Янв-25, 15:56 
Последнее время так же делаю. Отлаживаю проект весьма небольшими фрагментами. И тестовая печать, выданная в файл, может быть удобнее для анализа.
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

44. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (44), 19-Янв-25, 19:00 
Удачи дебажить принтами типичную легасятину десятилетнюю на 600К+ строк кода, где библы вперемешку с фреймворком и все на коллбэках, при этом их код может совершенно неочевидным образом обрабатывать как выхлоп твоей процедуры, так и нечто неочевидное передавать на вход (а документировано это может быть крайне криво). Так что тут только отладчик и по стеку вызовов гулять, изучать всю цепочку.
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

18. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (18), 19-Янв-25, 04:54 
Вот интересно... Как там нынче lldb по сравнению с gdb? Кто-нить юзает?
Ответить | Правка | Наверх | Cообщить модератору

21. "Выпуск отладчика GDB 16"  –2 +/
Сообщение от Аноним (21), 19-Янв-25, 09:56 
в VSCode и Neovim для Rust юзают lldb
Ответить | Правка | Наверх | Cообщить модератору

34. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (37), 19-Янв-25, 16:23 
В прошлом году немного поработал с lldb - не понравился, gdb лучше. Да и глюков в нём больше.
Ответить | Правка | К родителю #18 | Наверх | Cообщить модератору

19. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (19), 19-Янв-25, 09:29 
>     Прекращена поддержка QNX Neutrino

И как теперь жить?

Ответить | Правка | Наверх | Cообщить модератору

43. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (32), 19-Янв-25, 18:58 
Если речь об отладке математики, то можно это делать в поддерживаемой отладчиком системе - предполагается, что работать она должна одинаково, а в неподдерживаемой делать сборку. Ну к примеру, я делаю отладку расчетных алгоритмов в Ubuntu, а для Haiku делаю сборку, и всё в ней работает.
Ответить | Правка | Наверх | Cообщить модератору

25. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (26), 19-Янв-25, 12:56 
GDB то может быть и хорош сам по себе. Другое дело его поддержка в средах разработки. Я никогда не работал с голым GDB. Но подозреваю, что это что то уровня работы с debug.com под DOS. Конечно можно, но не удобно. А в средах его реализация крайне кривейшая.
Ответить | Правка | Наверх | Cообщить модератору

30. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (30), 19-Янв-25, 14:27 
Я работаю, вроде норм. Переключаюсь между окном с терминалом и кодом, когда расставляю брейкпоинты, а потом уже только в терминале.
Ответить | Правка | Наверх | Cообщить модератору

36. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (37), 19-Янв-25, 16:31 
Неудобно, но в Gdb можно исходный текст просмотреть. Можно прямо во время исполнения изменить любой участок памяти. А многопоточные программы иногда только в нём получается отладить, когда точку останова на модификацию области памяти делать.
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

27. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (5), 19-Янв-25, 13:07 
Принтфы, языки, не требующие дебаггера, «писать нужно без ошибок»… а вы не пробовали не свой код отлаживать, а чужой? да не в исходниках, а в виде готовых бинарников?
Ответить | Правка | Наверх | Cообщить модератору

29. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (26), 19-Янв-25, 13:33 
Да чаще всего вопросы типа "А зачем мне ООП? У меня и так все работает" возникают у товарищей, которые ничего кроме школьных задачек и не решали. Дело в масштабируемости. Чем сложнее проект, тем круче нужны инструменты для его разработки. Благо у меня например опыта много в разработке почти без отладчика. Но корячится каждый раз с мелкими ошибками - это тоже не подарок. Однажды может не повезти и ты словишь сложную ошибку, которую трудно будет найти. Я тут недавно курьез словил. Дебагал ошибку три дня. Все было 100% ок, но не работало. Оказалось это баг в DOSBox. И я его нашел)))
Ответить | Правка | Наверх | Cообщить модератору

35. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (30), 19-Янв-25, 16:28 
>не свой код отлаживать, а чужой

А зачем? Это же что-то вроде наказания

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

38. "Выпуск отладчика GDB 16"  +/
Сообщение от Аноним (39), 19-Янв-25, 16:54 
Во-первых, есть такое понятие «надо».
Во-вторых, есть такое понятие «реверс-инженеринг». И это куда интереснее, чем принтфы в своём коде расставлять, чтобы очередной унылый выход за границы массива искать.
Ответить | Правка | Наверх | Cообщить модератору

45. "Выпуск отладчика GDB 16"  +1 +/
Сообщение от Аноним (32), 19-Янв-25, 19:03 
> а чужой? да не в исходниках, а в виде готовых бинарников?

Это самая большая проблема - отлаживать чужой код. На кривой и убогий Qt у меня было убито 80% времени, потраченного на проект в целом. Впрочем, полгода назад нашел лучшее решение, забыв о нем, как о кошмарном сне.

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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