падение на вызове функции синуса
От: JJ Jacob  
Дата: 02.12.15 06:52
Оценка: -1
Всем привет!

Пишу простое приложение на своем компе (intel i5, Windows 7 Pro SP1 64bit, Visual Studio 2013 Community)

#include "stdafx.h"

#include <cmath>
#include <iostream>

int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "sin: ";
std::cout << std::sin(15.0) << std::endl;

return 0;
}


Все работает, как ожидалось. Но когда я копирую скомпилированный бинарник на виртуалку (HyperV 6.3.9600.16384, Windows 2008 SP2 64bit, VC2013 redist установлен), то получаю APPCRASH на вызове "std::sin":

Problem signature:
Problem Event Name: APPCRASH
Application Name: ConsoleApplication4.exe
Application Version: 0.0.0.0
Application Timestamp: 565d75d4
Fault Module Name: MSVCR120.dll
Fault Module Version: 12.0.21005.1
Fault Module Timestamp: 524f83ff
Exception Code: c000001d
Exception Offset: 0000000000098b00
OS Version: 6.0.6002.2.2.0.16.7
Locale ID: 1049
Additional Information 1: 64e8
Additional Information 2: 160c2ca84e5ab528fe0edddf791bfff4
Additional Information 3: 3a8a
Additional Information 4: 8257d6859d8df6782771e833d7d51d3a


Подскажите, пожалуйста, в чем тут может быть дело и как это исправить?
c++ hyperv
Re: падение на вызове функции синуса
От: Varavva  
Дата: 02.12.15 07:17
Оценка:
Здравствуйте, JJ Jacob, Вы писали:

JJ>Подскажите, пожалуйста, в чем тут может быть дело и как это исправить?


Возможно копируешь дебажный бинарник. Собери Релизную верисю
Re[2]: падение на вызове функции синуса
От: JJ Jacob  
Дата: 02.12.15 07:22
Оценка:
V>Возможно копируешь дебажный бинарник. Собери Релизную верисю

Пробовал и релиз и дебаг версию, конечно. Прочитал где-то на стековерфлоу про подобную ошибку, что проблема может быть в SIMD оптимизациях для AVX, которые виртуалка не может корректно обработать. В настройках проекта AVX оптимизации отключены. Куда еще копить?
Re[3]: падение на вызове функции синуса
От: Varavva  
Дата: 02.12.15 07:26
Оценка:
Здравствуйте, JJ Jacob, Вы писали:

Попробуй две версии проги. В одной только
{
    double a = std::sin(5);
}

В другой только
{
   std::cout << "bla-bla ";
}


Может не в синусе дело
Re: падение на вызове функции синуса
От: мыщъх США http://nezumi-lab.org
Дата: 02.12.15 07:31
Оценка: +1
Здравствуйте, JJ Jacob, Вы писали:

JJ>Всем привет!


JJ>Подскажите, пожалуйста, в чем тут может быть дело и как это исправить?


вот до чего доводит людей неумение пользоваться идой. дааа... а исправляется это просто
#if defined (_WIN64)
_set_FMA3_enable (0);
#endif

ЗЫ. известная же ошибка...
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[4]: падение на вызове функции синуса
От: JJ Jacob  
Дата: 02.12.15 07:32
Оценка:
V>Попробуй две версии проги. В одной только
V>Может не в синусе дело

Пробовал и так. Вообще, первоначально программа была сильно больше — загружались данные из файлов, потом по ним должна была считаться всякая математика. В итоге свел ошибку на виртуалке к такому вот маленькому тесту с синусом
Что на моей машине, что на соседнем компе работает адекватно, а на виртулке такой вот appcrash случается
Re[2]: падение на вызове функции синуса
От: JJ Jacob  
Дата: 02.12.15 07:42
Оценка:
Здравствуйте, мыщъх, Вы писали:

М>вот до чего доводит людей неумение пользоваться идой. дааа... а исправляется это просто

М>#if defined (_WIN64)
М>_set_FMA3_enable (0);
М>#endif

Огромное спасибо, помогло!
Re: падение на вызове функции синуса
От: VTT http://vtt.to
Дата: 02.12.15 07:45
Оценка:
Это баг в рантайм библиотеке 2013 студии, и исправлен он уже не будет.
Сейчас логичным решением было бы перейти на 2015, благо уже и первый апдейт вышел.
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Re: падение на вызове функции синуса
От: LaptevVV Россия  
Дата: 02.12.15 08:25
Оценка:
JJ>Подскажите, пожалуйста, в чем тут может быть дело и как это исправить?
А в каком режиме собирал?
Установи: Релиз Могопоточная /MT — без DLL
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Отредактировано 02.12.2015 8:25 LaptevVV . Предыдущая версия .
Re[2]: падение на вызове функции синуса
От: Mr.Delphist  
Дата: 02.12.15 13:02
Оценка: :))
Здравствуйте, мыщъх, Вы писали:

М>Здравствуйте, JJ Jacob, Вы писали:


JJ>>Всем привет!


JJ>>Подскажите, пожалуйста, в чем тут может быть дело и как это исправить?


М>вот до чего доводит людей неумение пользоваться идой. дааа... а исправляется это просто

М>#if defined (_WIN64)
М>_set_FMA3_enable (0);
М>#endif

М>ЗЫ. известная же ошибка...


Тот самый случай, когда мыщъх говорит "it's a sin"...
Re: падение на вызове функции синуса
От: Abyx Россия  
Дата: 02.12.15 15:08
Оценка:
Здравствуйте, JJ Jacob, Вы писали:

JJ> Exception Code: c000001d


следующий раз добавляйте расшифровку кода ошибки
In Zen We Trust
Re: падение на вызове функции синуса
От: Gaia  
Дата: 02.12.15 16:19
Оценка:
Возможно, это оно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.