Re: Еще один жёсткий БАГ MSVC7.1
От: Кодт Россия  
Дата: 03.10.06 15:18
Оценка: 1 (1) +1 :)
Здравствуйте, Pavel Chikulaev, Вы писали:

PC>Включаем релиз и Maximize Speed /O2 и радуемся Компилятор повиснет и съест куча памяти


Павел, ты сам прекрасно понимаешь, что
1) ты написал оффтопик к обсуждаемому багу
2) maximize speed — это давно известный вестерн "быстрый-и-мёртвый", косяки там тянутся ещё со времён VC6
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re: Еще один жёсткий БАГ MSVC7.1
От: AndrewJD США  
Дата: 03.10.06 15:28
Оценка: :))
Оффтоп.

Здравствуйте, Pavel Chikulaev, Вы писали:

PC>Включаем релиз и Maximize Speed /O2 и радуемся Компилятор повиснет и съест куча памяти


Ух ты. Быстро же примеры из корпоративной переписки попадют в форум
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Еще один жёсткий БАГ MSVC7.1
От: Pavel Chikulaev Россия  
Дата: 03.10.06 14:22
Оценка: 7 (1)
Здравствуйте, remark, Вы писали:

R>Вот минимальный код, приводящий к ошибке:


int main(int argc, char * argv[])
{
   int k = 0;

   for(int i = 1; i < argc ; ++i)
   {
      //...
   }

   while ((k != 1) && (k >= 0))
   {
      //...
   }
   return 0;
}

Включаем релиз и Maximize Speed /O2 и радуемся Компилятор повиснет и съест куча памяти

12.10.06 09:07: Ветка выделена из темы Еще один жёсткий БАГ MSVC7.1
Автор: remark
Дата: 29.09.06
— Хитрик Денис
Re[2]: Еще один жёсткий БАГ MSVC7.1
От: dkotov  
Дата: 12.10.06 09:21
Оценка: :)
Здравствуйте, dkotov, Вы писали:

D>Странно конечно, но компилятор не повис


а вот линкер умер...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Еще один жёсткий БАГ MSVC7.1
От: Vain Россия google.ru
Дата: 03.10.06 15:38
Оценка:
Здравствуйте, Pavel Chikulaev, Вы писали:

PC>Включаем релиз и Maximize Speed /O2 и радуемся Компилятор повиснет и съест куча памяти

А у этого бага ноги растут прямо их ж..ы
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: Еще один жёсткий БАГ MSVC7.1
От: remark Россия http://www.1024cores.net/
Дата: 12.10.06 05:21
Оценка:
Здравствуйте, Pavel Chikulaev, Вы писали:

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


R>>Вот минимальный код, приводящий к ошибке:


PC>
PC>int main(int argc, char * argv[])
PC>{
PC>   int k = 0;

PC>   for(int i = 1; i < argc ; ++i)
PC>   {
PC>      //...
PC>   }

PC>   while ((k != 1) && (k >= 0))
PC>   {
PC>      //...
PC>   }
PC>   return 0;
PC>}
PC>

PC>Включаем релиз и Maximize Speed /O2 и радуемся Компилятор повиснет и съест куча памяти


Да, действительно неприятно.
Причём, я от него такого поведения ещё не видел — обычно он просто выдаёт "Internal compiler error".


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re: Еще один жёсткий БАГ MSVC7.1
От: dkotov  
Дата: 12.10.06 08:42
Оценка:
Странно конечно, но компилятор не повис
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Еще один жёсткий БАГ MSVC7.1
От: Аноним  
Дата: 13.10.06 14:52
Оценка:
Здравствуйте, Кодт, Вы писали:

К>2) maximize speed — это давно известный вестерн "быстрый-и-мёртвый", косяки там тянутся ещё со времён VC6


Извините можно подробней у меня в программе при maximize speed провляеться одна ошибка котрой в debug версии нет.

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

Имеет ли смысл пытаться локализовывать ошибку или отклчюить maximize speed? Даже если локализую мои дальнейшие дествия не понятны.

скорость работы между maximize speed и мин размер отличаеться минимум на порядок (программа активно парсит данные).
Re[3]: Еще один жёсткий БАГ MSVC7.1
От: Константин Л.  
Дата: 13.10.06 14:59
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, Кодт, Вы писали:


К>>2) maximize speed — это давно известный вестерн "быстрый-и-мёртвый", косяки там тянутся ещё со времён VC6


А>Извините можно подробней у меня в программе при maximize speed провляеться одна ошибка котрой в debug версии нет.


А>Функцию где происходит ошибка я нашел какой именно код приводит к ошибке определить не смог.


А>Имеет ли смысл пытаться локализовывать ошибку или отклчюить maximize speed? Даже если локализую мои дальнейшие дествия не понятны.


А>скорость работы между maximize speed и мин размер отличаеться минимум на порядок (программа активно парсит данные).


попробовать найти место, где компилер нагадил? Сравнить asm листинги например.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Еще один жёсткий БАГ MSVC7.1
От: Аноним  
Дата: 13.10.06 15:18
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>попробовать найти место, где компилер нагадил? Сравнить asm листинги например.


спасибо за ваш ответ

место я нашел это if с вызовом внешней dll переписывал этот if несколько раз резултат прежний

ошибка проявляеться только на одном наборе входных данных при компиляции мин размер не проявляеться

что обычно делают в таких случаях
можно ли отлкючить оптим только для одной функции на VC6?
Re[5]: Еще один жёсткий БАГ MSVC7.1
От: Константин Л.  
Дата: 13.10.06 18:14
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Константин Л., Вы писали:


КЛ>>попробовать найти место, где компилер нагадил? Сравнить asm листинги например.


А>спасибо за ваш ответ


А>место я нашел это if с вызовом внешней dll переписывал этот if несколько раз резултат прежний


А>ошибка проявляеться только на одном наборе входных данных при компиляции мин размер не проявляеться


А>что обычно делают в таких случаях

А>можно ли отлкючить оптим только для одной функции на VC6?

ну вроде как можно для translation unit'а, те для файла. Вынеси нужные функции в этот файл и отключи оптимизацию
Re: Еще один жёсткий БАГ MSVC7.1
От: Аноним  
Дата: 14.10.06 14:33
Оценка:
Здравствуйте, Pavel Chikulaev, Вы писали:

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


R>>Вот минимальный код, приводящий к ошибке:


PC>
PC>int main(int argc, char * argv[])
PC>{
PC>   int k = 0;

PC>   for(int i = 1; i < argc ; ++i)
PC>   {
PC>      //...
PC>   }

PC>   while ((k != 1) && (k >= 0))
PC>   {
PC>      //...
PC>   }
PC>   return 0;
PC>}
PC>

PC>Включаем релиз и Maximize Speed /O2 и радуемся Компилятор повиснет и съест куча памяти

в VS 71 SP1 та же фигня
Re[6]: Еще один жёсткий БАГ MSVC7.1
От: demi США  
Дата: 14.10.06 17:26
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Константин Л., Вы писали:


КЛ>>>попробовать найти место, где компилер нагадил? Сравнить asm листинги например.


А>>спасибо за ваш ответ


А>>место я нашел это if с вызовом внешней dll переписывал этот if несколько раз резултат прежний


А>>ошибка проявляеться только на одном наборе входных данных при компиляции мин размер не проявляеться


А>>что обычно делают в таких случаях

А>>можно ли отлкючить оптим только для одной функции на VC6?

КЛ>ну вроде как можно для translation unit'а, те для файла. Вынеси нужные функции в этот файл и отключи оптимизацию


Делается так:

#pragma optimize("", off) //see MSDN for full doc.
//Code compiled wrong in optimization
#pragma optimize("", on)

Ну или push-pop. Так исключите функцию дающую результат из компиляции.
Не стыдно попасть в дерьмо, стыдно в нём остаться!
Re[7]: Еще один жёсткий БАГ MSVC7.1
От: demi США  
Дата: 14.10.06 17:28
Оценка:
Здравствуйте, demi, Вы писали:

D>Делается так:


D>#pragma optimize("", off) //see MSDN for full doc.

D>//Code compiled wrong in optimization
D>#pragma optimize("", on)

D>Ну или push-pop. Так исключите функцию дающую результат из компиляции.

Читать: дающую НЕВЕРНЫЙ результат компиляции.
Не стыдно попасть в дерьмо, стыдно в нём остаться!
Re: Еще один жёсткий БАГ MSVC7.1
От: Аноним  
Дата: 14.10.06 23:14
Оценка:
Здравствуйте, Pavel Chikulaev, Вы писали:

PC>
PC>int main(int argc, char * argv[])
PC>{
PC>   int k = 0;

PC>   for(int i = 1; i < argc ; ++i)
PC>   {
PC>      //...
PC>   }

PC>   while ((k != 1) && (k >= 0))
PC>   {
PC>      //...
PC>   }
PC>   return 0;
PC>}
PC>

PC>Включаем релиз и Maximize Speed /O2 и радуемся Компилятор повиснет и съест куча памяти

Microsoft Visual Studio 2005
Version 8.0.50727.42 (RTM.050727-4200)
Installed Edition: Professional
Microsoft Visual C++ 2005 77626-009-0013253-41245
— d:\work\111\111.cpp(53) : fatal error C1002: compiler is out of heap space in pass 2
Re: Еще один жёсткий БАГ MSVC7.1
От: EugeneNalimov  
Дата: 17.10.06 21:36
Оценка:
Здравствуйте, Pavel Chikulaev, Вы писали:

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


R>>Вот минимальный код, приводящий к ошибке:


PC>
PC>int main(int argc, char * argv[])
PC>{
PC>   int k = 0;

PC>   for(int i = 1; i < argc ; ++i)
PC>   {
PC>      //...
PC>   }

PC>   while ((k != 1) && (k >= 0))
PC>   {
PC>      //...
PC>   }
PC>   return 0;
PC>}
PC>

PC>Включаем релиз и Maximize Speed /O2 и радуемся Компилятор повиснет и съест куча памяти

Спасибо за bug report. Я починил в "живом" компиляторе. К сожалению, сейчас уже слишком поздно, и в VS2005 SP1 ошибка исправлена не будет. Ждите SP2 или VS9...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.