Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Опросы > Вы пользуетесь DEBUG-ом?


Автор: Nastya 18.6.2005, 09:58
В общем такая картина. Мне тут рассказали, что есть программисты, которые отладкой могут совсем не пользоваться.
Написал, запустил и все работает. smile
Если честно я не верю. По крайней мере мне без отладчика (ну хоть какого-то smile жить тяжело).
А для Вас насколько важно в программировании использование инструментария отладки?

Автор: rsm 18.6.2005, 10:57
Обычно пишу без отладчика. Но для пущей надежности в наиболее ответственных релизах гоняю программу в моем любимом отладчике OllyDbg.

Автор: batigoal 18.6.2005, 11:53
Цитата(Nastya @ 18.6.2005, 10:58)
Написал, запустил и все работает.

Это не про меня. smile

Автор: z-END 18.6.2005, 12:03
имхо, для проверки работоспособности приложения, можно создавать различные ситуации так или иначе показывающие правильность работы, но для проверки работы алгоритма поможет только дебугер.

Автор: Mayk 18.6.2005, 19:36
Использую дебаггер только когда прога вываливается с Segmentation Fault. Да и то, только чтобы посмотреть на какой строке ошибка. Потом сразу выхожу из дебагера и открываю vim. В остальных случаях(когда работает, но неправильно) пользуюсь чем-нибудь типа fprintf(stderr,"this=%p, \n", this). Вообщем не люблю я отладчики. На дух не перевариваю.
Правда, итог весьма не элегантен: исходный код посреди стадии отладки чуть ли не наполовину состоит из //fprintf(someval);

Автор: Spawn™Production® 18.6.2005, 23:34
Хех, ну напишу, что-то не так если, ругнёться прога, но круче, чем дебагером студии я не пользуюсь...

Автор: bel_nikita 19.6.2005, 01:30
DEBUG он есть всегда! Его не может не быть smile Это либо самодельные printf(...); getch(), брекпоинты и т.д. либо спец софт, который идет в комплекте с компилятором или сторонний.

Автор: Ciber SLasH 19.6.2005, 03:49
Проглосовал за "Могу без него, но предпочитаю пользоваться".
Иногда напишешь какую-нить простенькую прогу и к дэбагеру не прикасаешься.
А иногда по выданным ошибкам компилятора подправляешь код до работоспособного состояния.
Но вообще без дэбагера -- куча зря потерянного времени (а время -- деньги).

Автор: chipset 19.6.2005, 05:26
Хм. Видать те программисты ничего сложнее Hello world на бейсике не писали smile

Автор: Mayk 19.6.2005, 08:07
Цитата(chipset @ 19.6.2005, 05:26)
Хм. Видать те программисты ничего сложнее Hello world на бейсике не писали  smile

Дебаг не всегда можно использовать. К примеру, представь, что тебе сервер шлет множество UDP дейтаграмм с большой скоростью. Тогда, чтобы отладить их приём, дебагером сложно воспользоваться - пока Next/Trace/Watch будешь жать буфер приема может переполнится и дейтаграммы уйдут в мир иной.
Или запись CD/DVD дисков. Там уж точно нельзя использовать дебаггер, только вывод на экран.
ЗЫ. В первом примере ключевая фраза "отладить их приём" а не "отладить".
Это я к тому, что УДП и без дебагера не отличается надежностью.

Автор: batigoal 19.6.2005, 10:47
Да, у меня тоже часто встает проблема невозможности использования дебага. Но когда им можно пользоваться, то юзаю по максимуму.

Автор: CaptainFlint 19.6.2005, 11:28
Бывает, что дебаггером пользоваться низзя (вот пару дней назад как раз пытался многопоточное приложение в Visual C++ отладить... Сначала среда начала глючить, потом дико тормозить, и в конце концов зависла намертво.) - в таких ситуациях какая-то такая беспомощность ощущается, я бы сказал... Понятно, что дополнительные print'ы и всё такое, но первое ощущение, когда узнаёшь, что программу невозможно протрейсить - "как же так, что же теперь делать-то?" smile

Автор: bagira 19.6.2005, 20:02
Цитата(Ciber @ 19.6.2005, 03:49)
Проглосовал за "Могу без него, но предпочитаю пользоваться".
Иногда напишешь какую-нить простенькую прогу и к дэбагеру не прикасаешься.
А иногда по выданным ошибкам компилятора подправляешь код до работоспособного состояния

Да. Я тоже так ответила.
Бывают такие хитрые ошибки, что их иначе не выловишь smile
Ну, скажем так - примерно в 30% я применяю отладчик (в Дельфи)

Автор: Nastya 20.6.2005, 08:25
Под дебагом я подразувела не только специальные средства, но и тот же TRACE/ATLTRACE/ASSERT (это как раза что бы пол программы в //printf не было smile ), возможност просмотреть память по указателю и т.д.

Автор: En_t_end 20.6.2005, 08:58
Разок пользовался smile
В остальных случаях предпочитаю читать книгу в подписи и не совершать порой очень глупых ошибок...

Автор: Fantasist 20.6.2005, 10:33
Отладчик - это круто!

Автор: Vit 20.6.2005, 16:27
Вопрос то как формулировался:

Цитата
Вы пользуетесь DEBUG-ом?,


Не debugger'ом а DEBUG-ом. Нормальный ответ - практически всегда! Хоть UDP, хоть запись на DVD - если не отладчик, то запись в лог, если не в лог то на экран и т.д. и т.п.

Автор: LSD 20.6.2005, 21:25
Есть языки где отладка невозможна, ни через отладочные сообщения ни дебагером. Так что только внимательно вчитываться в код.

Автор: Domestic Cat 20.6.2005, 21:31
Вообще-то вопрос не совсем ясен... Если правишь баг, то дебаггер иногда нужен. Если баги не замечены, то достаточно тестирования через JUnit/NUnit/MockObjects/Cactus/ и т п

Автор: Vit 20.6.2005, 21:34
Цитата(LSD @ 20.6.2005, 12:25)
Есть языки где отладка невозможна, ни через отладочные сообщения ни дебагером. Так что только внимательно вчитываться в код.



Это то есть какие? smile

Автор: LSD 20.6.2005, 21:37
Цитата(Vit @ 20.6.2005, 22:34)
Это то есть какие?

Например SQL, или ML.
Я конечно могу извратится и в Oracle повесить на select записть некой инфы в лог, но это решение не универсальное и уж больно извратное.

Автор: Vit 20.6.2005, 23:24
SQL и ML - не являются языками программирования!

SQL - это язык запросов, А вот языки программирования на основе SQL типа T-SQL имеют многочисленные средства для отладки.

ML, а так же HTML, SGML, XML, RTF, LATEX и т.п. тоже не является языком программирования, это язык описания данных, язык форматирования...

Любой же язык программирования так или иначе представляет последовательность действий которые надо произвести, и естественно что для любого языка программирования есть способы тем или другим образом выяснить какой оператор (команда) выполнился и с каким результатом...

Автор: LSD 21.6.2005, 22:20
Цитата(Vit @ 21.6.2005, 00:24)
ML, а так же HTML, SGML, XML, RTF, LATEX и т.п. тоже не является языком программирования, это язык описания данных, язык форматирования...

Не знаю о каком ML говорил ты, но я имел в виду http://www.smlnj.org/sml.html.

Цитата(Vit @ 21.6.2005, 00:24)
SQL - это язык запросов, А вот языки программирования на основе SQL типа T-SQL имеют многочисленные средства для отладки.

T-SQL имеет очень мало общего с SQL. T-SQL это императивный язык, а SQL функциональный. Я говорил именно про SQL.

Цитата(Vit @ 21.6.2005, 00:24)
Любой же язык программирования так или иначе представляет последовательность действий которые надо произвести, и естественно что для любого языка программирования есть способы тем или другим образом выяснить какой оператор (команда) выполнился и с каким результатом...

Я думаю ты имел в виду программу, а не язык. Язык программирования это просто описание синтаксиса и семантики.
Программа это не последовательность команд, это формальное описание алгоритма, для интерпетатора, он может быть как аппаратным (например любой процессор), так и програмным (тот же интепретатор PHP или Perl). Описание может быть в виде последовательнсти команд, а может быть в виде описания функций как в ML или в виде фактов и правил как в Пролог. Т.е. мы лишь формулируем задачу, а способ ее решения должен найти сам интерпретатор, как например с SQL, пы указываем какую операцию над множеством мы хотим провести, а как ее реализует сервер нас не волнует (пока конечно не начнется борьба за производительность).

Вот материалы по: http://roman-dushkin.narod.ru/fp_01.html и по http://www.mig19.schel.ac.ru/prolog/theory/theory.html.

Автор: Caramel 22.6.2005, 09:36
Модератор: давайте вернемся к теме smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)