| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Опросы > Вы пользуетесь DEBUG-ом? |
| Автор: Nastya 18.6.2005, 09:58 |
| В общем такая картина. Мне тут рассказали, что есть программисты, которые отладкой могут совсем не пользоваться. Написал, запустил и все работает. Если честно я не верю. По крайней мере мне без отладчика (ну хоть какого-то А для Вас насколько важно в программировании использование инструментария отладки? |
| Автор: rsm 18.6.2005, 10:57 |
| Обычно пишу без отладчика. Но для пущей надежности в наиболее ответственных релизах гоняю программу в моем любимом отладчике OllyDbg. |
| Автор: batigoal 18.6.2005, 11:53 | ||
Это не про меня. |
| Автор: 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 он есть всегда! Его не может не быть |
| Автор: Ciber SLasH 19.6.2005, 03:49 |
| Проглосовал за "Могу без него, но предпочитаю пользоваться". Иногда напишешь какую-нить простенькую прогу и к дэбагеру не прикасаешься. А иногда по выданным ошибкам компилятора подправляешь код до работоспособного состояния. Но вообще без дэбагера -- куча зря потерянного времени (а время -- деньги). |
| Автор: chipset 19.6.2005, 05:26 |
| Хм. Видать те программисты ничего сложнее Hello world на бейсике не писали |
| Автор: Mayk 19.6.2005, 08:07 | ||
Дебаг не всегда можно использовать. К примеру, представь, что тебе сервер шлет множество UDP дейтаграмм с большой скоростью. Тогда, чтобы отладить их приём, дебагером сложно воспользоваться - пока Next/Trace/Watch будешь жать буфер приема может переполнится и дейтаграммы уйдут в мир иной. Или запись CD/DVD дисков. Там уж точно нельзя использовать дебаггер, только вывод на экран. ЗЫ. В первом примере ключевая фраза "отладить их приём" а не "отладить". Это я к тому, что УДП и без дебагера не отличается надежностью. |
| Автор: batigoal 19.6.2005, 10:47 |
| Да, у меня тоже часто встает проблема невозможности использования дебага. Но когда им можно пользоваться, то юзаю по максимуму. |
| Автор: CaptainFlint 19.6.2005, 11:28 |
| Бывает, что дебаггером пользоваться низзя (вот пару дней назад как раз пытался многопоточное приложение в Visual C++ отладить... Сначала среда начала глючить, потом дико тормозить, и в конце концов зависла намертво.) - в таких ситуациях какая-то такая беспомощность ощущается, я бы сказал... Понятно, что дополнительные print'ы и всё такое, но первое ощущение, когда узнаёшь, что программу невозможно протрейсить - "как же так, что же теперь делать-то?" |
| Автор: bagira 19.6.2005, 20:02 | ||
Да. Я тоже так ответила. Бывают такие хитрые ошибки, что их иначе не выловишь Ну, скажем так - примерно в 30% я применяю отладчик (в Дельфи) |
| Автор: Nastya 20.6.2005, 08:25 |
| Под дебагом я подразувела не только специальные средства, но и тот же TRACE/ATLTRACE/ASSERT (это как раза что бы пол программы в //printf не было |
| Автор: En_t_end 20.6.2005, 08:58 |
| Разок пользовался В остальных случаях предпочитаю читать книгу в подписи и не совершать порой очень глупых ошибок... |
| Автор: Fantasist 20.6.2005, 10:33 |
| Отладчик - это круто! |
| Автор: Vit 20.6.2005, 16:27 | ||
Вопрос то как формулировался:
Не 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, 21:37 | ||
Например 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 | ||||||
Не знаю о каком ML говорил ты, но я имел в виду http://www.smlnj.org/sml.html.
T-SQL имеет очень мало общего с SQL. T-SQL это императивный язык, а SQL функциональный. Я говорил именно про SQL.
Я думаю ты имел в виду программу, а не язык. Язык программирования это просто описание синтаксиса и семантики. Программа это не последовательность команд, это формальное описание алгоритма, для интерпетатора, он может быть как аппаратным (например любой процессор), так и програмным (тот же интепретатор 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 |
| Модератор: давайте вернемся к теме |