Преминаване към основното съдържание
Поддръжка
Влизане с Microsoft
Влезте или създайте акаунт.
Здравейте,
Изберете друг акаунт.
Имате няколко акаунта
Изберете акаунта, с който искате да влезете.

Симптоми

Когато създавате програма с помощта на Microsoft Visual C++ 2013, програмата се срива и се появява "Illegal Инструкция" изключение. Това се случва, защото някои плаваща математически функции във Visual C++ 2013 x64 C Runtime (CRT) правилно не проверява дали са налични някои AVX и FMA3 инструкции, преди да ги използвате функциите. Ако инструкциите не са налични за употреба, повиквания към тези функции причини недопустими Инструкция изключение (0xc000001d). Засегнатите функции включват регистър log10 и военнопленници и други.

Този проблем е най-вероятно да възникне в следните ситуации:

  • По-стара версия на операционната система Windows, която поддържа AVX състояние записване (например Windows Vista) ако се използва на компютър, който поддържа AVX набор инструкции

  • Ако AVX състояние записване изрично е забранен в конфигурацията за зареждане на операционната система

  • В средата за предварително инсталиране на Windows (Windows PE)

    Забележка: Windows PE не поддържа AVX състояние записване.


Този проблем е съобщено за свързване на Microsoft:

x64 функцията използва vpsrlq AVX инструкции без операционна система (за да блокира на Vista x64)

Visual Studio 2013 RTM: C++ x64 код генериране на грешка за AVX2 инструкции

Причина

Този проблем възниква, тъй като Visual C++ 2013 x64 C Runtime не проверява дали операционната система поддържа AVX състояние записване, преди да се опитва да изпълни AVX или FMA3 инструкции.

Решение

Ако всички засегнати C++ двоични файлове, които са създадени чрез Visual C++ 2013 C Runtime DLL (msvcr120.dll), инсталирайте актуализирания Microsoft Visual C++ 2013 разпространение – 12.0.40660.0 или по-нова версия.

Ако засегнатите C++ двоични файлове статистически връзка на Visual C++ 2013 C Runtime, трябва да актуализирате вашата инсталация на Visual Studio 2013 чрез инсталиране на 3174417 корекция и възстановяване и пренасочване на засегнатите файлове.









Забележка: Този проблем не засяга по-стари версии на Visual C++ C Runtime (Visual C++ 2012 и по-ранни версии). Проблемът е решен преди в първоначалната версия на универсалната CRT, използван от Visual C++ 2015 г.

Център на Microsoft за изтегляния

Да актуализирате статично свързани Visual C++ 2013 C по време на работа, 3174417 корекция е издаден като изцяло актуализация и не се разпространяват чрез Windows Update. Е налична в уеб сайта на центъра за изтегляния на Microsoft:

Download Изтеглете сега пакета.

Да актуализирате динамично свързани Visual C++ 2013 C Runtime DLL, актуализиран за разпространение е наличен. За повече информация вижте следната статия в базата знания на Microsoft:

3179560 актуализация за Visual C++ 2013 и пакета за разпространение на Visual C++

Заобикаляне на проблема

За да заобиколите този проблем, забранете FMA3 в библиотеката на математически, ако са засегнати от този проблем. Можете да запитване дали системата поддържа AVX инструкции обаждане GetEnabledXStateFeatures и забрана AVX в CRT изрично чрез извикване на _set_FMA3_enable(0).

За повече информация вижте работа с XState контекстна уеб сайта на MSDN.

Функцията _set_FMA3_enable(0) е обявено в < math.h > и той е наличен само когато създавате за x64. (Този проблем засяга само x64 библиотеки.) Това води до математически библиотеката да се върнете към използване на приложения за FMA3.

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.

Беше ли полезна тази информация?

Доколко сте доволни от качеството на езика?
Какво е повлияло на вашия потребителски опит?
Като натиснете „Подаване“, вашата обратна връзка ще се използва за подобряване на продуктите и услугите на Microsoft. Вашият ИТ администратор ще може да събира тези данни. Декларация за поверителност.

Благодарим ви за обратната връзка!

×