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

Проектирование и разработка идеального средства программирования.

Модератор: Модераторы

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

Сообщение ev » 22.10.2007 21:29:06

ev
долгожитель
 
Сообщения: 1764
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение Сергей Смирнов » 22.10.2007 21:51:27

На первых этапах обучения - да, зло. Мешает сосредоточиться на логике. Стимулирует подход к решению проблем методом тыка.
Аватара пользователя
Сергей Смирнов
энтузиаст
 
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва

Сообщение ev » 22.10.2007 22:05:47

имеется ввиду для работы
ведь насколько я понял в ББ отказываются от отладчика полностью
ev
долгожитель
 
Сообщения: 1764
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение e-moe » 22.10.2007 22:08:22

>отказываются от отладчика полностью
ну и зря
e-moe
новенький
 
Сообщения: 31
Зарегистрирован: 27.09.2007 17:00:39

Сообщение Сергей Смирнов » 22.10.2007 22:17:51

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

ЗЫ: Кстати, насколько мне известно, при создании программ управления всякой сложной техникой действительно используются совершенно другие подходы к программированию, но какое это имеет отношение к обычному софту, которым мы все пользуемся каждый день?
Аватара пользователя
Сергей Смирнов
энтузиаст
 
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва

Сообщение GrayEddy » 22.10.2007 22:32:56

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

Для отладк в БлэкБоксе в подозрительных местах выставляются HALT.
Если есть исключение, выдается посмертный дамп с состоянием переменных.
Гарантируется, что среда не упадет, а просто остановит работу, то есть просто почувствуйте разницу.
БлэкБокс создавался для создания сверхнадежных приложений.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение ev » 22.10.2007 22:38:46

т.е. просто нет отладчика... делать ему некому либо лень
поэтому и пытаются сказать что он не нужен?
ev
долгожитель
 
Сообщения: 1764
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение GrayEddy » 22.10.2007 22:47:15

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

В Блэкбоксе нет try..finally..end.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение ev » 22.10.2007 22:54:05

Когда есть исключение - он раскручивает стек вызовов.

а если нет исключения?
т.е. ошибка банально в формуле или еще где... человеческий фактор еще никто не отменял... через строку вставлять HALT ?
ev
долгожитель
 
Сообщения: 1764
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение alexs » 22.10.2007 23:36:46

ev
Интересно, автор Брукса "Мифический человеко-месяц" читал? Особенно обе главы про серебрянную пулю?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение ev » 22.10.2007 23:51:59

я и сам не читал ;)
ev
долгожитель
 
Сообщения: 1764
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение trifon » 22.10.2007 23:52:56

ev писал(а):
Когда есть исключение - он раскручивает стек вызовов.

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


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

В си это всего лишь макрос, который вставляется если скомпилировано c DEBUG
Как я понял в дельфи и fpc ACCERT позаимствовали из си.
trifon
постоялец
 
Сообщения: 135
Зарегистрирован: 24.12.2006 12:08:35

Сообщение ev » 22.10.2007 23:57:42

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

если знать заранее все сомнительные места, то можно заранее и все ошибки знать ;)
а это не реально
ev
долгожитель
 
Сообщения: 1764
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение trifon » 23.10.2007 00:13:35

В данном случае это всего лишь способ улучшить качество и читаемость кода, не жертвуя при этом скоростью и размером программы.
trifon
постоялец
 
Сообщения: 135
Зарегистрирован: 24.12.2006 12:08:35

Сообщение ev » 23.10.2007 00:16:35

а при чем тут читаемость кода?
мы ведь говорим об отладчике, а не про try....
ev
долгожитель
 
Сообщения: 1764
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

След.

Вернуться в Компилятор / язык программирования

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

Рейтинг@Mail.ru