Страница 1 из 2

использование отладчика

СообщениеДобавлено: 22.10.2007 21:29:06
ev

СообщениеДобавлено: 22.10.2007 21:51:27
Сергей Смирнов
На первых этапах обучения - да, зло. Мешает сосредоточиться на логике. Стимулирует подход к решению проблем методом тыка.

СообщениеДобавлено: 22.10.2007 22:05:47
ev
имеется ввиду для работы
ведь насколько я понял в ББ отказываются от отладчика полностью

СообщениеДобавлено: 22.10.2007 22:08:22
e-moe
>отказываются от отладчика полностью
ну и зря

СообщениеДобавлено: 22.10.2007 22:17:51
Сергей Смирнов
А, ясно о чём речь. ИМХО, все эти бредни имеют в корнях желание привить индустриальный подход к процессу разработки программ. Но вот мне интересно: а если я забуду в каком нибудь хитром цикле сделать приращение счётчика (грубо говоря), то как это выявить без пошаговой отладки?

ЗЫ: Кстати, насколько мне известно, при создании программ управления всякой сложной техникой действительно используются совершенно другие подходы к программированию, но какое это имеет отношение к обычному софту, которым мы все пользуемся каждый день?

СообщениеДобавлено: 22.10.2007 22:32:56
GrayEddy
В БлэкБоксе для проверки правильности переданных параметров применяются ASSERT'ы.
Если параметры неверные, среда (если быть точным - фреймфорк) остановится.
Все это очень похоже на 1С.
А Delphi (FPC) выдадут AV. И закроются.

Для отладк в БлэкБоксе в подозрительных местах выставляются HALT.
Если есть исключение, выдается посмертный дамп с состоянием переменных.
Гарантируется, что среда не упадет, а просто остановит работу, то есть просто почувствуйте разницу.
БлэкБокс создавался для создания сверхнадежных приложений.

СообщениеДобавлено: 22.10.2007 22:38:46
ev
т.е. просто нет отладчика... делать ему некому либо лень
поэтому и пытаются сказать что он не нужен?

СообщениеДобавлено: 22.10.2007 22:47:15
GrayEddy
Да нет... он есть, символьный отладчик.
Когда есть исключение - он раскручивает стек вызовов.
Видны вызовы процедур, приведших к исключению.
Как говорилось, можно заодно глянуть все переменные, и взять их значения на момент исключения.
Все это очень похоже на то, что есть в Джаве (голословно, врать не буду, не работал с Джавой, надо спросить спецов по ней).

В Блэкбоксе нет try..finally..end.

СообщениеДобавлено: 22.10.2007 22:54:05
ev
Когда есть исключение - он раскручивает стек вызовов.

а если нет исключения?
т.е. ошибка банально в формуле или еще где... человеческий фактор еще никто не отменял... через строку вставлять HALT ?

СообщениеДобавлено: 22.10.2007 23:36:46
alexs
ev
Интересно, автор Брукса "Мифический человеко-месяц" читал? Особенно обе главы про серебрянную пулю?

СообщениеДобавлено: 22.10.2007 23:51:59
ev
я и сам не читал ;)

СообщениеДобавлено: 22.10.2007 23:52:56
trifon
ev писал(а):
Когда есть исключение - он раскручивает стек вызовов.

а если нет исключения?
т.е. ошибка банально в формуле или еще где... человеческий фактор еще никто не отменял... через строку вставлять HALT ?


Вставлять ACCERT, в любом хорошем учебнике по си, или по программированию под gnu linux рекомендуется вставлять ACCERT во всех сомнительных местах.
Считается хорошим стилем, помогает отладке и улучшает читаемость кода.

В си это всего лишь макрос, который вставляется если скомпилировано c DEBUG
Как я понял в дельфи и fpc ACCERT позаимствовали из си.

СообщениеДобавлено: 22.10.2007 23:57:42
ev
Вставлять ACCERT, в любом хорошем учебнике по си, или по программированию под gnu linux рекомендуется вставлять ACCERT во всех сомнительных местах.

если знать заранее все сомнительные места, то можно заранее и все ошибки знать ;)
а это не реально

СообщениеДобавлено: 23.10.2007 00:13:35
trifon
В данном случае это всего лишь способ улучшить качество и читаемость кода, не жертвуя при этом скоростью и размером программы.

СообщениеДобавлено: 23.10.2007 00:16:35
ev
а при чем тут читаемость кода?
мы ведь говорим об отладчике, а не про try....