Десять отличий
Бывает такое у программистов…. Вдруг перестаёт работать программа. Весь день работала, вчера работала, полгода работала до этого, а сейчас перестала — и всё. Каждый программист выходит из этой ситуации по-разному. Кто-то бросает текущую задачу и переключается на другую, а кто-то пытается решить проблему сразу, отталкиваясь от того, что «я же ничего не менял, почему она перестала работать? аааа!!!».
IMHO большинство программистов идёт по второму пути. А на этом пути их поджидает главный подвох. Они начинают искать «десять отличий». В ход идут все способы: от svn diff
до сравнения бинарных файлов. В случае с программой для встраиваемых систем появляется паранойя, что все отладочные железки — глючат, что в них перепутаны резисторы, конденсаторы, и что-то там ещё.
Я не отрицаю, что «поиск отличий» может быть эффективным методом поиска неисправностей, но он не может быть основным. Основным методом может быть «остановиться и подумать». Он гораздо эффективнее, поскольку:
- в нём присутствует слово «думать» ;)
- процесс поиска ошибки становится творческим, а не тупо механическим
- в этом случае от программирования можно получить удовольствие и меньше устать
- лучше понимаешь, на что потратил своё время
- полученные знания можно использовать в дальнейшем
По себе знаю: очень трудно остановиться. И в этом заключается основная проблема. Но остановиться надо. Иначе — бесследная потеря времени гарантирована на все 100%.
наболело ;)
плюс пиццот!
Если перестала работать программа, а ты «ничего не сделал, только вошел, слющай!» — иногда помогает «пересобрать все». На прошлой неделе такое было. Посоветовал пересобрать. Функция, возвращает значение, а в вызывающую возвращается совершенно другое значение: пересобрали, помогло.
а вот это уже шаманские танцы с бубном. тоже из серии «как не надо делать».
Лучше игнорировать ошибку, растущую из проблем в компиляции и линковке (соглашения о вызовах, выравнивание и т.п.), и думать-думать-думать??? А может стоит запустить rebuild и в это время почитать код? И когда завершится, будет видно, дальше думать, или проблема наведенная?
Такое постоянно случалось. Паша свидетель.
игнорировать ошибки нельзя, сам понимаешь. в описанном тобой случае нужно искать её (ошибку) в правилах сборки, скорее всего. где-то зависимости не прослеживаются.
А в таких ситуациях чаще всего с зависимостями и проблема.
это наша лень. надо с ней бороться. и найти ошибку в построении зависимостей ;)
Кстати!!! Часто бывает, что «как надо делать» никто не знает… :(
и что? вешаться, да?
Вешаться. НО! Перед этим упорно искать выход… И вешаться только когда выход один: вешаться. ;)
:)