Comments: |
![[User Picture]](http://lj.rossia.org/userpic/190862/22975) | From: | avla |
Date: | June 27th, 2011 - 08:12 am |
---|
| | | (Link) |
|
А что правда, можно достаточно сложные вещи программировать без отладчика? и много таких професстоналов что не используют отладчики?
Я не программист, я Electronics Engineer, но мне случалось программировать на ассемблере и на C для микроконтроллеров 8051, Atmel AVR и ARM7, я никогда не использовал отладчик, но у меня и программы были не очень сложные, скажем на уровне "оцифровать данные от датчика, отфильтровать простым фильтром, помножить на коэффициенты, отобразить на экранчике LCD", в таком духе, всё это и без отладчика удавалось сделать. Но как долго можно обходиться без отладчика?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 08:17 am |
---|
| | | (Link) |
|
>А что правда, можно достаточно сложные вещи программировать без отладчика? и >много таких професстоналов что не используют отладчики? я назову только две фамилии (могу больше, но:), и этого, думаю, будет достаточно: Керниган и Пайк.
>Но как долго можно обходиться без отладчика? вечно.
прошу заметить, что я именно про интерактивный пошаговый отладчик. исследование крэшдампов — это совсем другая сказка. но это уже не отладчик, по сути, а инструмен для выборки информации из особого формата базы данных.
Спокойно можно без отладчика работать. Единственно, когда отладчик удобнее, это если надо поймать ошибку не в коде, а в исходных данных.
> А что правда, можно достаточно сложные вещи программировать без отладчика?
Для встроенных процессоров - вряд ли.
Офигенный коммент, особенно непосредственно в ответ на признание человека, который периодически пишэт для 8051, AVR и ARM и никогда не пользовался отладчиком.
Могли и не напоминать -- уровень Вашых объяснений мы с Вами, кажэтся, где-то ужэ обсуждали...
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 01:59 pm |
---|
| | | (Link) |
|
i lold too.
а что в них такого ужасного? вот я вот в былые времена активно использовала для задач, превышающих хелловолд, и не вижу в этом ничего постыдного :)))
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 09:26 am |
---|
| | | (Link) |
|
тебе и на флэше писать не стыдно, чо.
кстати, на флеше я, как раз никакого пошагового отладчика не использую.
--------------
да, и это называется ActionScript
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 09:38 am |
---|
| | | (Link) |
|
нет, это называется «флэш». как платформа, а не как конкретный вмонтированый туда язык.
кстати, правильно пишется "нужный полезный флеш"
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 09:42 am |
---|
| | | (Link) |
|
навоз тоже полезный, но от этого ковыряться в нём приятно не становится.
![[User Picture]](http://lj.rossia.org/userpic/1762/2926) | From: | illyge |
Date: | June 27th, 2011 - 12:39 pm |
---|
| | | (Link) |
|
Так а чем вредно?
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 01:53 pm |
---|
| | | (Link) |
|
тем, что тратится куча времени на бесполезную хуйню. все те три с половиной раза, что я использовал дурацкий пошаговый отладчик оказались бесполезны: я потратил времени больше, чем если бы пошёл подышал воздухом, выкурил сигарету и перечитал код.
K&P правильно говорят: при наличии интерактивного отладчика есть идиотское стремление вместо правильного образа действий (остановится, включить мозг и подумать) выбрать наиболее простой и бессмысленный (понакидать точек останова и уйти в трассировку).
плюс, впрочем, в этой фигне есть, но сомнительный: со стороны похоже, что полезным делом занимаешься. начальник заглядывает — а у тебя жопа в мыле, сопли во все стороны и на экране сессия отладчика. «а, молодец, работает!» — подумает начальник. и будет в корне не прав, конечно, но обычно он этого не понимает.
Кстати, не согласен про то, что включить мозг и думать -- это правильный образ действий. Мозг беречь надо, он от думания греется и рождает глюки.
Потому правильный -- это наиболее простой и безсмысленный, а именно понакидать точек отладочной печати и потом неспеша сравнивать сдампленный профиль выполнения со своими представлениями.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 02:26 pm |
---|
| | | (Link) |
|
мозг от думанья лучше работает.
Ага, а мышцы от поднятия тяжэстей.
Но такжэ, как 6 дней в неделю по 10 часов кидать уголь вредно для мышц, связок и костей -- так и постоянно думать тяжёлую работу вредно для мозга.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 04:44 pm |
---|
| | | (Link) |
|
все аналогии лгут.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 01:56 pm |
---|
| | | (Link) |
|
а, натурально: «режим релиза» — это изобретение уебанов. ни в каком виде не надо отключать проверку на выход за границы массивов, проверки стеков, assert'ы и прочее. никогда. пусть лучше софтина развалится с кородампом сразу, а не ковыляет, как бухой бомж.
понятно, что assert'ы и прочее надо писать щедро, особенно в публичных функциях. потому что документацию никто не читает, и поэтому контракты надо вбивать молотком и ядерной бомбой.
И, кстати, гораздо лучшэ если вся инфраструктура софта рассчитана на то, что софитна -- периодически валится. В проивном случае редкие падения вызывают какой-то адский попаболь.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 02:25 pm |
---|
| | | (Link) |
|
это умолчательно, кагбэ. падает всё, поэтому писать с учётом сего факта следует сразу. и не стесняться хуячить логи действий.
From: | qulinxao |
Date: | June 27th, 2011 - 03:23 pm |
---|
| | шизофрения опасна! | (Link) |
|
в части assert'ов вы прямо противоречите святому Пайку
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 04:20 pm |
---|
| | Re: шизофрения опасна! | (Link) |
|
возможно. а вот Вирт считает, что много ассертов — это хорошо.
From: | qulinxao |
Date: | June 27th, 2011 - 06:54 pm |
---|
| | У Томпсона в Coders at Work хорошее интервью. | (Link) |
|
насколько не точно помню Вирт с асертами обращается как с обычными предусловиями и инвариантами при билде алгоритма - а нее некими чеками и проверками на даные скоторыми чё то произошло(до прибытия к части у которой пречек входов)
т.е у Вирта асерты это не воткнутые при отладке сущности сужающие область применения алгоритма , а не отьемлемая часть алгоритма появляющаяся при его проектирование . Есть некоторое различие .
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 11:38 pm |
---|
| | Re: У Томпсона в Coders at Work хорошее интервью. | (Link) |
|
а это и не отладочные инструменты ни разу — это проверка контракта.
![[User Picture]](http://lj.rossia.org/userpic/177838/27012) | From: | stager |
Date: | June 27th, 2011 - 03:56 pm |
---|
| | | (Link) |
|
теперь я понял, почему с gdb работать невозможно! он не предназначен для отладки! ;)
"мы ничего не хотим слышать про отладчики, нам эта тема не интересна. см рис 1"
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 04:32 pm |
---|
| | | (Link) |
|
дададада, именно так!
кстати, хорошо эта фигня стелана в смолтолке: там сразу вывалится в исходник, где ёбнулось. можно поковырять контекст исполнения и — при некоторой удаче — даже продолжить, как ни в чём не бывало.
С gdb, кстати, замечательно работается. Я с его помощью выяснял непонятные моменты в вычислениях MMXа (ну, тут можно было и без gdb обойтись, но таки тогда эта светлая мысль не приходила мне в голову), взламывал одну софтину с привязкой к жэлезке и ковырял (давно запущенные) иксы на предмет кто чего и сколько сожрал. Неизменно превосходный результат!
Я использовал отладчик, когда писал стартап и переключатель задач для ARM.
в тот момент исполнения программы никаких дампов сделать было невозможно.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 04:29 pm |
---|
| | | (Link) |
|
это несколько другая сказка, тащемта. если из всех доступных вариантов только такой — что уж поделаешь…
Надо было светодиодик к ноге припаять, и им в такт подмигивать.
Использовал и осциллограф, и компорт. Но иногда не хватало. Вот только на осциллографе не видно, правильно ли я вычислил адрес на стеке.
То есть в некоторые моменты я использовал дампы. При прохождении определённого участка программы в ком-порт плевался определённый байтик. Потом в терминале смотрел последовательность исполнения веток программы.
Да это и без осцыллографа видно -- если неправильно, то оно повиснет и дёрнут watchdog, с ребутом.
А вот и не угадал. Оно может улететь в другой кусок кода и там работать.
Я не согласен, но спорить не буду. Потому что пофиг. Это на rsdn наверно, никогда не затихают такие дискуссии.
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 27th, 2011 - 11:41 pm |
---|
| | | (Link) |
|
ну не всё ж мне о сиськах писать.
Хотя я просмотрел что это совет начинающему. Начинающему программисту надо в уме дебажить. С этим согласен.
Отладчик не нужен до первого бага компиллятора. ;)
![[User Picture]](http://lj.rossia.org/userpic/197531/22349) | From: | ketmar |
Date: | June 28th, 2011 - 03:52 pm |
---|
| | Re: Наивный мечтатель | (Link) |
|
и даже после первого бага. и после далеко не первого бага. как будто я не наступал на баги в компиляторах — от простых падений до кривого кода.
то-то я всегда удивлялась чё у меня компиллер падал постоянно во времена пользования пошагового отладчика (ржот) | |