Remediere: Programe care sunt create în Visual C++ 2013 cădere, cu excepția "Illegal Instruction"

IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată și poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate și articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cunoștințe în mai multe limbi. Articolele traduse automat și post-editate pot conține greșeli de vocabular, sintaxă și/sau gramatică. Microsoft nu este responsabil de inexactitățile, erorile sau daunele cauzate de traducerea greșită a conținutului sau de utilizarea acestuia de către clienți. Găsiți mai multe informații despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.

Faceți clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 3174417
Simptome
Când se construiți un program utilizând Microsoft Visual C++ 2013, programul se blochează și primiți o excepție "Illegal Instruction". Acest lucru se produce deoarece unele matematice în virgulă mobilă bibliotecă de funcții în Visual C++ 2013 x64 C Runtime (CRT) verifica corect dacă anumite instrucțiuni AVX și FMA3 sunt disponibile înainte funcțiile încercați să le utilizați. Dacă instrucțiunile nu sunt disponibile pentru utilizare, apelurile către aceste funcţii provoca o excepție illegal instruction (0xc000001d). Funcții afectate includ jurnal, log10, și pow și altele.

Această problemă este cel mai probabil să apară în următoarele scenarii:
  • Pe o versiune mai veche a sistemului de operare Windows care nu acceptă AVX stare salvarea (de exemplu, Windows Vista) dacă este utilizat pe un computer care acceptă setul de instrucțiuni AVX
  • Dacă AVX stare de economisire este dezactivată în mod explicit în configurația de încărcare a sistemului de operare
  • În mediul Preinstall Windows (Windows PE)

    Notă Windows PE nu acceptă AVX stare de vară.

Această problemă a fost raportat pe Microsoft Connect:

Cauză
Această problemă apare deoarece Runtime Visual C++ 2013 x64 C nu verifică dacă sistemul de operare acceptă AVX stare salvarea înainte încearcă să se execute AVX sau FMA3 instrucțiunile.
Rezoluţie
Dacă toate afectate C++ binare care sunt create cu Visual C++ 2013 DLL C Runtime (msvcr120.dll), instalați actualizat Microsoft Visual C++ 2013 redistribuire – 12.0.40660.0 sau o versiune ulterioară.

Dacă vă afectate C++ binare link static Visual C++ 2013 C Runtime, trebuie să actualizați instalarea de Visual Studio 2013 instalarea remedierii rapide 3174417 și regenerarea și redistribuirea binare afectate.

Notă Această problemă nu afectează versiunile mai vechi ale Visual C++ C Runtime (Visual C++ 2012 și versiuni anterioare). Înainte de lansarea inițială CRT Universal care este utilizat de Visual C++ 2015 s-a remediat problema.

Centrul de descărcare Microsoft

Pentru a actualiza static legat Visual C++ 2013 C Runtime, remedierea rapidă 3174417 este lansat ca o actualizare de descărcare și nu este distribuit prin Actualizare Windows. Este disponibil la site web Microsoft Download Center:

DescărcareDescărcaţi acum pachetul.

Pentru a actualiza dinamic legat Visual C++ 2013 C Runtime DLL-uri, actualizat o componentă de redistribuire este disponibil. Pentru mai multe informații, consultați următorul articol din baza de cunoștințe Microsoft:

Remediere
Lucrăm rezolva această problemă, dezactivați FMA3 în biblioteca matematică dacă sunt afectate de această problemă. Puteți interogați dacă sistemul acceptă instrucțiunilor AVX prin apelareaGetEnabledXStateFeatures și dezactivarea AVX în CRT explicit apelând _set_FMA3_enable(0).

Pentru mai multe informații, consultați Lucrul cu XState Context pe site-ul MSDN.

Function _set_FMA3_enable(0) este declarat în <math.h>și este disponibil numai la compilarea pentru x64. (Această problemă afectează numai x64 biblioteci.) Acest lucru provoacă Biblioteca matematică pentru a reveni la utilizarea implementările non-FMA3. </math.h>

Avertisment: acest articol a fost tradus automat

Proprietăți

ID articol: 3174417 - Ultima examinare: 07/29/2016 05:56:00 - Revizie: 1.0

Visual Studio 2013 Community Edition

  • kbfix kbqfe atdownload kbexpertiseadvanced kbsurveynew kbmt KB3174417 KbMtro
Feedback