Баги

Для любителей обсудить что круче Linux или Win32, Java или C#.

Модератор: Duncon

Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

13 сен 2004, 17:58

Есть предложение обсудить баги - кто с какими сталктвался (сам делал или видел) и кто какие знает.

Например красивый баг был в MS Visual C++ 6.0 баг заключался в том, что при создании std::map в dll и использовании его в главном приложении или наоборот вся программа падала. Если смотреть в дебаге то нормально передавался только первый элемент коллекции.
Через неделю копаний в инете был найден ответ - просто в MS неправильно зареализовали библиотеку STL все решалось использованием седьмой версии С или STL от сторонних разработчиков (в частности stlport)
В SAD - все в SAD.
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

19 сен 2004, 14:49

Был такой, который мне чуть работы не стоил. В описании от M$ было написано, что если определенной функции скормить существующее имя файла, то получаешь интерфейс, в противном случае - NULL. Это при дебаге работало, но в условиях реальной эксплуатации после нескольких десятков ненайденных файлов чего-то недрах Винды накапливалось и приводило к Protection Fault. После этого я приобрел привычку скармливать чужим функциям только заведомо достоверные параметры.
Был и такой баг, который меня просто шокировал. Совершенно прозрачный код, которому я верил на все сто, работал неправильно. После того, как я потратил вечер и нашел-таки этот баг, я испытал чего-то типа расширенного сознания. К сожалению, суть этого бага я забыл =( . Такие вещи надо в тетрадки записывать.
2B OR NOT(2B) = FF
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

20 сен 2004, 18:44

Хоть кто-то понимает что без багов программисты не были бы программистами ;)
И вообще M$ любит че-то криво реализовать при чем не только в прикладных проектах но и на уровне средств разработки.У меня тут недавно истроия была - пишу простенький код - организую список из точек потом по ним график строю - в пошаговом дебаге все на ура. а при старте дебаг версии - эксепшн что из нуля читаю. Пользовался стандартным new, переделал через стл лист - все на ура. Машину перегружал - не помогало. На другой комп перенес с new - все пашет.
В SAD - все в SAD.
chur
Сообщения: 195
Зарегистрирован: 17 фев 2004, 10:44
Откуда: Riga, Latvia

10 ноя 2004, 15:43

Linux 2.4.20-2.48smp
Apache 2.50.0 mod_perl 1.99
Perl 5.8.0

Есть perl-скрипт. На выходе HTML-страница. Строку запроса разбираю сам и складываю в хеш-массив %params, который объявлен в начале скрипта. Обязательный параметр запроса - fileindex, имеет, соответсвенно, целое числовое значение (по нему находим в базе имя файла над которым надо изголяться). Далее в скрипте это значение используется для формирования аттрибута href тега <A>, примерно так:
<A href= .. &fileindex=$params{'fileindex'}& .. >
Вообщем, ничего особенного, все работает как надо.

Так же на странице присутствет одна или несколько форм для редактирования, у которых есть hidden INPUT тег с именем fileindex и соответсвующим значением. И вот тут начинается самое интересное. Эти формы генерятся в подпрограмме (в том же скрипте) и вышеописанный тег вставляется следующей строкой:
$form .= "<INPUT type=hidden name=fileindex value=$params{'fileindex'}>";
Т.е. в подпрограмме используется значение хеша $params{'fileindex'}. Так вот, это значение почему-то другое :shock: .
Например, на странице несколько ссылок <A> со значением fileindex=8 (правильным) и три формы, в которых fileindex равен, допустим, 6 (во всех формах одинаковое). Особенно настораживает то, что это происходит не всегда, я бы сказал иногда, но если это произошло и в броузере нажать кнопку 'back' и снова ту же ссылку по которой шли дальше, результат идентичен. Еще один момент. Неправильные значения fileindex в формах, не совсем случайны. Они принимают значения индексов недавно просмотренных файлов.
Вот такие вот undocumented features. Приходится передавать в подпрограмму нужные значения как аргументы, вроде все работает как надо.
chur
Сообщения: 195
Зарегистрирован: 17 фев 2004, 10:44
Откуда: Riga, Latvia

12 ноя 2004, 14:23

Вообщем, это mod_perl глючит. Причем таким суровым образом. И передача в подпрограммы нужных значений то же не всегда помогает. Наверно, не зря номер версии 1.99.
Перенес скрипт без изменений на обычный CGI - все работает пучком. Правда, заметно дольше, но работает, но дольше :)
Если добьюсь стабильности глюка :), продемонстрирую.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

31 янв 2007, 15:10

Делал диплом на фреймах. Создал свой класс фреймов, потом от него унаследовал еще 4 класса, каждый из этих классов положил в палитру компонентов, с палитры ляпнул по одному экземпляру на формочку - хорошо!
Вышел из Дельфи, вошел - хрясь! Property TabOrder у моих фреймов, оказывается, does not exist! Потыкал Ignore, Cancel - проигнорило, понимаешь, ошибку. Лежит моя формочка, голая как коленка, и мелким фиговым листочком в углу сиротливо валяется какой-то лейбл, который я во времена царя Гороха в тестовых целях использовал. Запускаю экзешник - о чудо! Вот они, фреймы мои дорогие и любимые, работают как надо! Пытаюсь из Дельфи поредактировать - ну вот нет у него ТабОрдера, хоть ты тресни! И работать поэтому не хочет.
Решение нашлось в Инете: надо было в dfm-файлах этих фреймов ручками поправить первое слово в модуле: object заменить на inherited. Это программисты Борланда в свое время накосячили
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
DeeJayC
Сообщения: 492
Зарегистрирован: 17 фев 2004, 11:26
Откуда: Ленинград (который Город на Неве)
Контактная информация:

01 фев 2007, 11:32

Kolinus, проблема, кстати, известная. Просто в DLLMain надо было crt_init вызывать. Я с этим тоже надолбался по самое никуда.
"Особое внимание начинающих аквариумистов хотим обратить на то, что рыбки никогда не спят на спинке!" (c)

viel spass, DeeJayC
Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

05 фев 2007, 14:48

Вспомнил феерическое сообщение об ошибки "Окно Adobe Photoshop не может быть отображно на этом экране".
Экспериментально выяснено, что оно появляется при количестве шрифтов, зарегистрированном в Windows, превышающем 1000+
2B OR NOT(2B) = FF
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

05 фев 2007, 18:27

Картиночки
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

27 фев 2007, 18:00

Сегодня мой коллега с шефом обнаружили. На каком-то Sql-сервере программа подсчитывала время чего-то там и т.д. В какой-то момент времени это время стало примерно таким: 12.25.59.99999999..., после чего скрипт все это дело радостно округлил, и стало у нас время 12.25.60. Программа посмотрела на это и ушла в нирвану.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить