Войти
ФлеймФорумОбщее

про баги в VC .NET

#0
18:20, 29 окт. 2003

----------------
int main ()
{
        char c[4];
        c[0]='a';
        c[1]='b';
        c[2]='c';
        c[3]='d';

        printf ( "before: %c%c%c%c\n", c[0], c[1], c[2], c[3] );

        for ( int j = 0; j < 2; j++ )
        {
                for ( int i = 0; i < 3; i++ )
                {
                        c [ i ] = c [ i+1 ];
                }

                c [3] = 'x';
        }

        printf ( "after: %c%c%c%c\n", c[0], c[1], c[2], c[3] );

        return 0;
}
----------------

В debug все правильно, "cdxx". А в release "cxxx".
В VC6 в обоих случаях правильно. IC 7.1 тоже.

У кого какие мнения?

Sorry.


#1
19:21, 29 окт. 2003

RomanPshenichy
Сообщи в Microsoft.....:)
А что ты ожидал от дяди билли...

#2
19:37, 29 окт. 2003

RomanPshenichy
Интересно... А для чего этот код? ;-)

#3
21:50, 29 окт. 2003

RomanPshenichy
Старо.
none4
>Сообщи в Microsoft.....:)
Давно
>А что ты ожидал от дяди билли...
А тебе слабо написать компилятор хотябы такогоже качества?
Джыдай
Скорей всего изначально был другой код. Но много больше размером. А так как принято выделять минимальный код воспроизводящий ошибку то получилось такое.

#4
23:41, 29 окт. 2003

WolfHound

>>>А тебе слабо написать компилятор хотябы такогоже качества?

Это из той же оперы ,что тебе строители построят дом, а там крыша течёт ...стены рушатся...ты конечно будешь возмущаться..а тебе строители ответят "А тебе слабо дом построить"...Хоть я и не покупал лицензионную VS.net, а многие тысячи людей заплатили хорошие бабки за неё и наверное не мало потеряли из за подобных багов...так чтоб релиз версию программы выпускать пускай делают туеву хучу  бессплатных бета версий до тех пор пока не устранят баги...А то это же смешно каких то не более 20 простых строчек и уже выявляется баг...А если десятки тысяч строк кода ...то там и помереть наверное можно разыскивая баг в программе которую ты идеально сделал ...а всё из-за чего...а из-за того что некоторые люди хотят побольше бабок сгребсти и побыстрее...а потом пусть люди мучаются..."скинем им пару сервис паков каждые пол года...пусть радуются"....Поэтому я за Free software...есть баги ...проблемма...но зато деньги не потратил...а ещё луче когда открытые коды...глючит...разберись...перекомилируй...радуйся...сам себе хозяин....

#5
1:08, 30 окт. 2003

none4
Да несериозно ето...

А вот насчет бага - у них явно много тест-кейсов там, и все наверное прошли тестъ перед релизом. Т.е. то что баг не поймали, значит баг - какая-то екзотика и имхо редок... Ето плохо, но все же там кошмарной сложности оптимизатор кода. Лучше IC иногда, говорят... Слабо? Вот-вот, за все платить приходится, а Free Software таких размеров, такого качества наверное скоро не увидит...

#6
8:32, 30 окт. 2003

none4
Это единственная известная мне ошибка кодогенерации VC7.1 при оптимизаторе такого уровня это великолепный результат. Ошибаются ВСЕ.
Например в BCB6 я не напрягаясь наступил на не один десяток притом что оптимизатор там ни какой.
А если учитывать что VC7.1 единственный компилятор в мире который на 100% скомпилировал boost то твои наезды на MS выглядят по крайней мере не серьезно.

#7
13:32, 30 окт. 2003

2ALL

Ладно забили на микрософт.....:)

Я всё же не могу понять природу этого бага....такой маленький код...непонятно что там происходит в debug mode....
Если этот баг известен давно как утверждает WolfHоund то может гдето есть его описание и причина его возникновения....

#8
15:24, 30 окт. 2003

WolfHоund
Люблю библиотеки, которые "на 100%" компилируются только на одном компилере %)).
Вот это -  на самом деле "по крайней мере не серьезно"!

(не наезд ни на что - просто как довод, это не катит %).

#9
21:01, 31 окт. 2003

WolfHоund
Если это быг стар, дай его описание. Где ссылка на rsdn?
RomanPshenichy
Пойду дома поковыряюсь с отладчиком. Надеюсь на VС 7.0 твой код тоже глючит? :)

#10
21:23, 31 окт. 2003

none4
ну причину таких багов вывести легко, достаточно взглянуть на disassambly в отладке или попросить сгенерировать асемблеровский листинг когда realase компилишь. вот у меня например был баг, что указатель на this сохранялся в регистре ecx, а не в стеке, естесствено когда этот регистр менялся то this уничтожался со всеми вытекающими последствиями. от бага спасало только создание всего проекта заново.

#11
21:24, 31 окт. 2003

кстати, попробуй использовать интелловский компилятор, он прекрасно ставится под VC.NET и интегрируется с ним, правда компиляция происходит несколько дольше

ФлеймФорумОбщее

Тема в архиве.