Комментарии 46
Я в таких случаях сожу подле себя первого попавшегося беднягу и начинаю объеснять как прога работает. В 99% баг находится)
Уже не помогло.
Не хочу, грубить, но иногда у такого бедняги бывает своих проблем полный рот. Вы его отвлекаете на минуту, а он потом полчаса назад в свою проблему вникает…
У меня в качестве такого бедняги 4 маленьких стеклянных ежика перед монитором. Пока всем 4ём расскажу — обязателньо находится баг. Отладка методом «резиновой уточки» :)
Рекомендую почитать Джоэла Спольски — у него очень хорошо написано о том, почему нельзя программистам работать одновременно над двумя задачами, и сколько стоит отвлечь другого программиста от работы, вместо того, чтобы поискать ответ самому :)
Существует — профильные сообщества в том же livejournal.com или тематические форумы.
Обычно там отвечают на вопросы, правда будет много «шума», но если фильтровать его — ответ можно найти.
А для необнаружимых багов рекомендую обратить внимание на следующие пункты:
1. Компьютер всегда работает так, как ему сказано. Если что-то глючит — значит ошибки в собственном коде. Осталось их найти.
2. Чтобы освежить голову надо отвлечься и отдохнуть — попить чай, поспать, полностью переключиться хотя бы на час. Многие проблемы решаются при свежем взгляде на проблему.
3. Есть такая книга «Как не надо программировать на С», рекомендую к прочтению.
Обычно там отвечают на вопросы, правда будет много «шума», но если фильтровать его — ответ можно найти.
А для необнаружимых багов рекомендую обратить внимание на следующие пункты:
1. Компьютер всегда работает так, как ему сказано. Если что-то глючит — значит ошибки в собственном коде. Осталось их найти.
2. Чтобы освежить голову надо отвлечься и отдохнуть — попить чай, поспать, полностью переключиться хотя бы на час. Многие проблемы решаются при свежем взгляде на проблему.
3. Есть такая книга «Как не надо программировать на С», рекомендую к прочтению.
1) Что делать если проект достаточно большой (как раз мой случай) — в жж не запостишь.
2) Не помогло.
3) Попоробую найти.
2) Не помогло.
3) Попоробую найти.
Так или иначе проблему надо локализовывать.
Попробуйте провести рефакторинг — выкинуть те фрагменты кода, которые Вам не нравятся, и написать их заново.
Попробуйте провести рефакторинг — выкинуть те фрагменты кода, которые Вам не нравятся, и написать их заново.
Для начала нужно найти такие фрагменты кода. В случае с «мистическими багами» это не так
В смысле не так легко.
Если код нельзя запостить в несколько строчек, то в этом «дерьме», извиняюсь, никто кроме Вас копаться не будет. Попробуйте локализовать ошибку до 5-10 строчек. В этой проблеме Вы сами все найдете. А также попробуйте Unit-тестирование и ТДД, зачастую этот способ позволяет избегать «мистических» багов.
Почему не запостишь? Нужно локализовать проблему, а потом уже постить, а не весь проект вываливать :)
не очень вдохновляет разбираться в чужих помоях просто так
А никто о помощи и не просит.
я про «почему до сих пор не появилось сервиса»
Мне казалось, что на поиске багов «просто так» живет большинство opensource проектов. То есть никто не расчитывает на получение прибыли.
Обычно для этого используют irc. Но за просто так это конечно не особо весело, хотя хорошему человеку один раз помочь не особо сложно.
Сложнообнаруживаемые баги — это обычно баги, связанные с другими багами(в языке, в сторонних библиотеках), и зачастую решение простое — гуглить.
НЛО прилетело и опубликовало эту надпись здесь
А мне интересно что это за прога для универа, которая настолько большая, что её нельзя выложить? По своей памяти помню, что у нас в универе никогда не было очень больших проектов. Может вы просто не совсем представляете что значит действительно большой проект?
Обычно, чтобы исправить более-менее серьезную багу, надо знать структуру программы. На форуме этого так просто не объяснишь, или получится длинная колбаса кода, которую большинство будет просто игнорировать.
Все мистические баги обычно происходят от сайд-эффектов, собственных либо сторонних.
Bohr bug или Bohrbug (названы в честь боровской модели атома) — в отличии от Гейзенбагов никуда не исчезают и не мутируют по мере анализа причины рождения. Их просто-напросто невероятно тяжело найти и пофиксить на этапе использования. Скорее даже, они никогда не будут исправлены, но если перегрузить программу или компьютер, или отменить операцию и не подходить к компьютеру до тех пор, пока не сядет батарейка в БИОСе, то жук, наверняка, уберется восвояси… до следующей нескорой вылазки. Причина же возникновения Борбага кроется скорее во входе программы в невероятно редкие состояния.
www.rsdn.ru/Forum/Info/FAQ.humor.bugspedia.aspx
www.rsdn.ru/Forum/Info/FAQ.humor.bugspedia.aspx
НЛО прилетело и опубликовало эту надпись здесь
Уважаемый georgthegreat, такого сервиса нет и, видимо, не будет. Публичный (видимо подразумевается бесплатный) дебаггинг — fail по определению. Если же Вам за деньги, то фрилансеры тут недалеко.
Частенько ловлю «мистические баги» в чужом коде. Обычно в таких случаях программист допустивший баг либо не до конца понимает как работает та или иная функция, либо он просто тупит. Я как бы намекаю что «мистических багов» как таковых не существует.
Как правильно здесь заметили про OpenSource я, например, в этих программах ковыряюсь только если мне мешает какой-нибудь баг этой программы или нехватает функционала.
Рад что свой баг Вы-таки нашли.
Частенько ловлю «мистические баги» в чужом коде. Обычно в таких случаях программист допустивший баг либо не до конца понимает как работает та или иная функция, либо он просто тупит. Я как бы намекаю что «мистических багов» как таковых не существует.
Как правильно здесь заметили про OpenSource я, например, в этих программах ковыряюсь только если мне мешает какой-нибудь баг этой программы или нехватает функционала.
Рад что свой баг Вы-таки нашли.
в си++ такие баги обычно вызваны проблемами с памятью которые могут проявиться а могут и не проявиться.
к примеру
bool b; в большистве случаев будет true но в одном из 255 будет false;
добавили в код новую переменную. Компилятор по-другому расположил данные, и тут ваша b становится false.
к примеру
bool b; в большистве случаев будет true но в одном из 255 будет false;
добавили в код новую переменную. Компилятор по-другому расположил данные, и тут ваша b становится false.
в 99% если баг реально мистический, то проблема лежит в корявых сторонних компонентах, иначе — днк разраба
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Борьба с багами