Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Причини

При створенні програми за допомогою Microsoft Visual C++-2013, програма аварійно завершує роботу, і з'являється "Неприпустима інструкція" виняток. Це відбувається, тому, що деякі функції з рухомою комою математика на виконання Visual C++ 2013 року x64 C (CRT) не належним чином перевіряти функції, а потім їх використання певних AVX та FMA3 інструкції будуть доступні. Інструкції не доступні для використання, викликах функцій, ці спричинити неприпустима інструкція винятки (0xc000001d). Такі функції, містять журналу, log10 і pow та інші.

Ця проблема є відбуваються у таких випадках:

  • На старої версії операційної системи Windows, які не підтримують AVX стан збереження (наприклад, Windows Vista), якщо він використовується на комп'ютері, який підтримує набір інструкцій AVX

  • Якщо AVX стану збереження явно вимкнуто в конфігурації завантаження операційної системи

  • У середовищі попередньої інсталяції Windows (Windows PE)

    Примітка. AVX стану збереження не підтримує Windows PE.


Як повідомляють, ця проблема з Microsoft Connect:

x64 log() функції, використовує vpsrlq інструкцій AVX, незалежно від операційної системи (так, вона аварійно завершує роботу у Vista x64)

Visual Studio 2013 RTM: C++ x64 з кодом помилки створення AVX2 інструкції

Причина

Ця проблема виникає в тому, що виконання Visual C++ 2013 року x64 C не перевірити, чи операційна система підтримує, що AVX стану збереження, перш ніж вона намагається виконати AVX або FMA3 інструкцій.

Вирішення

Всі задіяні C++ двійкові файли, створені за допомогою Visual C++-2013, використання бібліотеки DLL C Runtime (msvcr120.dll), інсталюйте на оновлені Microsoft 2013 вторинного розповсюдження Visual C++-12.0.40660.0 або пізнішої версії.

Якщо ваш впливу двійкових файлів C++ статично посилання на Visual C++ 2013 виконання C, необхідно оновити вашу копію Visual Studio-2013 інсталяція 3174417 виправлення та відновлення redeploying такі файли.









Примітка. Ця проблема не впливає на старіші версії Visual c + + C Runtime (Visual C++-2012 і попередні версії). Виправлено проблему до випуску універсальний CRT, який використовується в Visual C++ 2015 р.

Центр завантажень Microsoft

Щоб оновити статично Visual C++ 2013 C Runtime, 3174417 виправлення випущено як тільки для завантаження оновлення і не розповсюджується за допомогою служби Windows Update. Вона доступна на сайті центру завантажень Microsoft:

Download Завантажити пакет оновлень.

Оновлення динамічно пов'язаних Visual C++ 2013 C Runtime DLL, оновлена вторинного розповсюдження доступна. Щоб отримати додаткові відомості див. таку статтю бази знань Майкрософт:

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 бібліотеки.) Це призводить до бібліотеки математичних символів до використання non-FMA3 впровадження.

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×