Неделю ловил баг!!!!!
От: Kubyshev Andrey  
Дата: 10.08.11 03:01
Оценка: :))) :))
ВСЮ Неделю ловил баг

Кусок кода был помечен как

#ifdef WIN64
...
#endif

вместо

#ifdef _WIN64
...
#endif

причем кто-то (я подозреваю что я) опредеделил в дебажной версии WIN64, а в релизе нет.
Я ВСЁЁЁЁ ПЕРЕРЫЛ. Нашел много других мелких багов ...
Re: Неделю ловил баг!!!!!
От: trickster Россия  
Дата: 10.08.11 03:53
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>ВСЮ Неделю ловил баг


KA>Кусок кода был помечен как


KA>#ifdef WIN64

KA>...
KA>#endif

KA>вместо


KA>#ifdef _WIN64

KA>...
KA>#endif

KA>причем кто-то (я подозреваю что я) опредеделил в дебажной версии WIN64, а в релизе нет.

KA>Я ВСЁЁЁЁ ПЕРЕРЫЛ. Нашел много других мелких багов ...

мои поздравления)
Re: Неделю ловил баг!!!!!
От: 0K Ниоткуда  
Дата: 10.08.11 06:40
Оценка: 1 (1) +8 -3 :))) :))) :))) :))) :)
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>#ifdef _WIN64

KA>...
KA>#endif

Тему назвали не правильно. Нужно было назвать: "в гробу я видал этот ваш C++".
Re: Неделю ловил баг!!!!!
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.08.11 07:45
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>ВСЮ Неделю ловил баг :crash: :crash: :crash: :crash:


Типичный "заскок сознания", или в более современной терминологии "глаз замылился". Такие тяжелее всего ищутся.
Искренне поздравляю с поимкой.

KA>причем кто-то (я подозреваю что я) опредеделил в дебажной версии WIN64, а в релизе нет.


интересно, зачем определил-то.

Кстати, чем peer review полезно, это именно тем, что такие вещи легче находятся именно свежим взглядом.
The God is real, unless declared integer.
Re: Неделю ловил баг!!!!!
От: hattab  
Дата: 10.08.11 07:46
Оценка: +6 :))) :))) :))) :))) :))) :))) :))) :))) :)
Здравствуйте, Kubyshev Andrey, Вы писали:

Это еще что... Я, помниться, как-то пытался пофиксить один хитрый баг. Уже чего только не делал: и так условие поменяю и этак, и такой воркараунд задумаю и по другому, а он, зараза, все вылазит и вылазит Дошел до крайности — удалил всю функциональность в которой он проявлялся, а баг выжил ... Мистика. Ушел спать с тревожным сердцем Оказалось, правил резервную копию исходников, а компилировал, понятное дело, рабочую
avalon 1.0rc3 rev 419, zlib 1.2.3
Re[2]: Неделю ловил баг!!!!!
От: ononim  
Дата: 10.08.11 08:59
Оценка:
H>Это еще что... Я, помниться, как-то пытался пофиксить один хитрый баг. Уже чего только не делал: и так условие поменяю и этак, и такой воркараунд задумаю и по другому, а он, зараза, все вылазит и вылазит Дошел до крайности — удалил всю функциональность в которой он проявлялся, а баг выжил ... Мистика. Ушел спать с тревожным сердцем Оказалось, правил резервную копию исходников, а компилировал, понятное дело, рабочую
дада. А я както приезжал в наш головной офис в Израиле, там по ходу дела пришлось помочь местным ковыряться в ихнем коде который зависал, пожирая весь CPU. В windbg нашел из-за чего зависает — товарищи звали WaitNamedPipe, дожидались пайпа и потом открывали его CreateFile'ом. Баг был изза того, что в WaitNamedPipe передавалось одно имя пайпа (которое было доступен), а в CreateFile — другое (которого не было). Пришел я к ним с этим делом — они открывают код — а там все круто. Одно и то же имя.. Мистика.. Оказалось — у них этот код, вернее даже весь .cpp, в котором был заимплеменчен pipe клиент, под таким же именем был скопипрован в другой фолдер проекта, где и был чутка подправлен — поменяли имя имя в CreateFile, а в WaitNamedPipe нет. А "умная" студия когда тыкаешь в название класса открывала первый файл, и по имени файла отображаемому в windbg его не отличишь, ибо имена файлов то одинаковые.. Копипастеры, блин...
Как много веселых ребят, и все делают велосипед...
Re: Неделю ловил баг!!!!!
От: Vamp Россия  
Дата: 10.08.11 12:52
Оценка:
KA>Кусок кода был помечен как
KA>#ifdef WIN64
KA>...
KA>#endif

А в чем идея? Что ты там в этом коде написал такого? Вроде если использовать правильные типы, то ничего у себя дефайнить не надо?
Да здравствует мыло душистое и веревка пушистая.
Re[2]: Неделю ловил баг!!!!!
От: dimgel Россия https://github.com/dimgel
Дата: 10.08.11 13:31
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Тему назвали не правильно. Нужно было назвать: "в гробу я видал этот ваш C++".


Кому надо, и так всё поняли.
Re: Неделю ловил баг!!!!!
От: Ник  
Дата: 11.08.11 09:59
Оценка: :)
У меня тоже такое бывает. Заметил, что начинаю вносить такие баги примерно после трёх часов интенсивного кодинга, уже от усталости. И вот, отработав сегодня три часа думаю — а стоит ли сегодня продолжать? Голова квадратная, нафига кодить, если я параллельно с полезной работой неосознанно сам себе буду капканы в коде расставлять?

Думаю, это должен быть один из вопросов во время интервью: "через сколько часов работы вы вместо кода начинаете писать говнокод?"
Re: Неделю ловил баг!!!!!
От: max-maxtor Россия www.rsdn.ru
Дата: 11.08.11 10:05
Оценка: +1 :)
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>ВСЮ Неделю ловил баг


KA>Кусок кода был помечен как


KA>#ifdef WIN64

KA>...
KA>#endif

KA>вместо


KA>#ifdef _WIN64

KA>...
KA>#endif

KA>причем кто-то (я подозреваю что я) опредеделил в дебажной версии WIN64, а в релизе нет.

KA>Я ВСЁЁЁЁ ПЕРЕРЫЛ. Нашел много других мелких багов ...

Это плохо. Нужно месяц ловить баг.
Re[2]: Неделю ловил баг!!!!!
От: Vain Россия google.ru
Дата: 14.08.11 02:17
Оценка: +1
Здравствуйте, netch80, Вы писали:

KA>>ВСЮ Неделю ловил баг

N>Типичный "заскок сознания", или в более современной терминологии "глаз замылился". Такие тяжелее всего ищутся.
Вы что-то путаете, тяжелее всего расстрел памяти и дедлоки ловятся, а это фигня, ловится на 1-2-3.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: Неделю ловил баг!!!!!
От: мыщъх США http://nezumi-lab.org
Дата: 14.08.11 02:23
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>ВСЮ Неделю ловил баг

в коде одной популярной библиотеки есть такой кусок

#if defined(MSDOS) || defined(OS2) || defined(WIN32) || defined(__CYGWIN__)
#  include <fcntl.h>
#  include <io.h>
#  define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY)
#else
#  define SET_BINARY_MODE(file)
#endif


ms vc 6 его компилировал молча, но setmode не устанавливалось. каким-то чудом все работало. не знаю каким. а потом внезапно попались такие входные данные, на которых все сломалось. причем ломалось оно очень далеко от этого вызова и чтобы найти баг пришлось пройти очень длинный путь.

после того как убрал пробелы после '#' все заработало. я был страшно зол.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[2]: Неделю ловил баг!!!!!
От: nen777w  
Дата: 19.08.11 22:58
Оценка:
KA>>ВСЮ Неделю ловил баг
М>в коде одной популярной библиотеки есть такой кусок

ну очень на boost похоже там так почему то макросы пишут (с пробелами между # define).
а чем собственно пробелы мешали, не могу понять?
Re: Неделю ловил баг!!!!!
От: nen777w  
Дата: 19.08.11 23:05
Оценка:
А у меня было такое, однажды написал так:

m_pObj = NULL;
delete m_pObj;


сделал либу и отдал в проект.
и это прожило где то с месяц в коде, студия после дебага сыпала сообщениями про лики, а Я как раз на другую либу переключился.
Удивило что никто не обращал на это внимание , пока снова не вернулся в проект и тогда пофиксил.
Re: Неделю ловил баг!!!!!
От: Доктор ТуамОсес Гондурас Мой новый проект "ВЕПРЬ-1"
Дата: 20.08.11 00:06
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>ВСЮ Неделю ловил баг


KA>Кусок кода был помечен как


KA>#ifdef WIN64

KA>...
KA>#endif

KA>вместо


KA>#ifdef _WIN64

KA>...
KA>#endif

KA>причем кто-то (я подозреваю что я) опредеделил в дебажной версии WIN64, а в релизе нет.

KA>Я ВСЁЁЁЁ ПЕРЕРЫЛ. Нашел много других мелких багов ...


И это типа долго?
У меня был случай, когда я два месяца багу не мог выловить.
Настолько баг был редкий и злое##чий
Правда у меня прога была посложней, чем Ваша.
Я написал свою RTOS с вытесняющей многопоточностью.
Причём крайне жёсткого реального времени.

А вообще, #ifdef у многих траблы бывают.
Все, наверное, помнят этот старый прикол с кусочком кода в забытом инклюде, который
оставил уволившийся программист:

#define TRUE FALSE //счастливой отладки, суки..

Мой новый проект "ВЕПРЬ-1"
Re[2]: Неделю ловил баг!!!!!
От: Доктор ТуамОсес Гондурас Мой новый проект "ВЕПРЬ-1"
Дата: 20.08.11 00:15
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, Kubyshev Andrey, Вы писали:


KA>>ВСЮ Неделю ловил баг


N>Типичный "заскок сознания", или в более современной терминологии "глаз замылился". Такие тяжелее всего ищутся.

N>Искренне поздравляю с поимкой.

KA>>причем кто-то (я подозреваю что я) опредеделил в дебажной версии WIN64, а в релизе нет.


N>интересно, зачем определил-то.


N>Кстати, чем peer review полезно, это именно тем, что такие вещи легче находятся именно свежим взглядом.

А вот когда у штатны программисто "глаз замылился" и требуется "свежий взгляд", тогда
становиться "НУЖНА ПОМОЩЬ ЗАЛА"®
Автор: Доктор ТуамОсес
Дата: 03.08.11
Мой новый проект "ВЕПРЬ-1"
Re: Неделю ловил баг!!!!!
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.08.11 00:33
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>ВСЮ Неделю ловил баг


KA>Кусок кода был помечен как


KA>#ifdef WIN64

KA>...
KA>#endif

А внутри ifdef'а что было?
Re[3]: Неделю ловил баг!!!!!
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.08.11 19:01
Оценка: 1 (1)
Здравствуйте, Vain, Вы писали:

V>Здравствуйте, netch80, Вы писали:


KA>>>ВСЮ Неделю ловил баг

N>>Типичный "заскок сознания", или в более современной терминологии "глаз замылился". Такие тяжелее всего ищутся.
V>Вы что-то путаете, тяжелее всего расстрел памяти и дедлоки ловятся, а это фигня, ловится на 1-2-3.

Я говорил про общие проблемы, не зависящие от применяемых средств. У меня сейчас >98% работы это Erlang и таких проблем, как Вы описываете, нет в принципе. А то можно ещё какой-нибудь ALTER GOTO из Кобола вспомнить, вот по сравнению с его неумеренным применением и дедлоки — фигня.
The God is real, unless declared integer.
Re[4]: Неделю ловил баг!!!!!
От: Vain Россия google.ru
Дата: 20.08.11 19:44
Оценка:
Здравствуйте, netch80, Вы писали:

KA>>>>ВСЮ Неделю ловил баг

N>>>Типичный "заскок сознания", или в более современной терминологии "глаз замылился". Такие тяжелее всего ищутся.
V>>Вы что-то путаете, тяжелее всего расстрел памяти и дедлоки ловятся, а это фигня, ловится на 1-2-3.
N>Я говорил про общие проблемы, не зависящие от применяемых средств. У меня сейчас >98% работы это Erlang и таких проблем, как Вы описываете, нет в принципе. А то можно ещё какой-нибудь ALTER GOTO из Кобола вспомнить, вот по сравнению с его неумеренным применением и дедлоки — фигня.
Не нету проблем, а заменил одни проблемы на другие
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.