CORRECTIF : Programmes qui reposent dans incident Visual C++ 2013 à l’exception de « Instruction illégale »

IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d’une traduction incorrecte du contenu ou de son utilisation par les clients.

La version anglaise de cet article est la suivante: 3174417
Symptômes
Lorsque vous générez un programme à l’aide de Microsoft Visual C++ 2013, le programme se bloque et vous recevez une exception « Instruction illégale ». Cela se produit parce que certaines fonctions de bibliothèque de mathématiques à virgule flottante dans le Runtime de Visual C++ 2013 x64 C (CRT) ne pas correctement vérifient si certaines instructions AVX et FMA3 sont disponibles avant que les fonctions de tentent de les utiliser. Si les instructions ne sont pas disponibles, les appels à ces fonctions provoquent une exception d’instruction non conforme (0xc000001d). Fonctions affectées incluent le journal de, log10, pow et des autres.

Ce problème est plus susceptible de se produire dans les scénarios suivants :
  • Sur une ancienne version du système d’exploitation Windows qui ne prend pas en charge les AVX état l’enregistrement (par exemple, Windows Vista) si elle est utilisée sur un ordinateur prenant en charge le jeu d’instructions AVX
  • Si l’enregistrement d’état AVX est explicitement désactivée dans la configuration de démarrage du système d’exploitation
  • Dans l’environnement de préinstallation Windows (Windows PE)

    Remarque Windows PE ne gère pas d’enregistrement d’état AVX.

Ce problème a été signalé sur Microsoft Connect :

Cause
Ce problème se produit car le Runtime Visual C++ 2013 x64 C ne vérifie pas si le système d’exploitation prend en charge l’enregistrement d’état AVX avant d’essayer d’exécuter des instructions AVX ou FMA3.
Résolution
Si tous les fichiers binaires C++ concernés qui sont générés à l’aide de Visual C++ 2013 utilisent la DLL d’exécution C (msvcr120.dll), installez la mise à jour redistribuable Microsoft Visual C++ 2013 – 12.0.40660.0 ou une version ultérieure.

Si vos fichiers binaires de C++ affectés de manière statique le Runtime C de Visual C++ 2013, vous devez mettre à jour votre installation de Visual Studio 2013 par l’installation du correctif 3174417 et de reconstruction et de redéployer les fichiers binaires concernés.

Remarque Ce problème n’affecte pas les versions antérieures de Visual C++ C Runtime (Visual C++ 2012 et les versions antérieures). Le problème a été résolu avant la version initiale de la CRT universel qui est utilisé par Visual C++ 2015.

Centre de téléchargement Microsoft

Pour mettre à jour le Runtime liées statiquement C de 2013 Visual C++, le correctif 3174417 est publié sous la forme d’une mise à jour par téléchargement uniquement et n’est pas distribué par le biais de Windows Update. Il est disponible sur le site Web de Microsoft Download Center :

TéléchargerTélécharger le package maintenant.

Mettre à jour dynamiquement lié DLL Visual C++ 2013 C Runtime, une mise à jour redistribuable est disponible. Pour plus d’informations, consultez l’article suivant de la Base de connaissances Microsoft :

Contournement
Towork résoudre ce problème, désactivez le FMA3 de la bibliothèque de mathématiques si vous êtes concerné par ce problème. Vous pouvez interroger si le système prend en charge les instructions AVX en appelantGetEnabledXStateFeatures et en désactivant les AVX le CRT explicitement en appelant _set_FMA3_enable(0).

Pour plus d’informations, reportez-vous à la section. Utilisation de contexte de XState sur le site Web MSDN.

La fonction _set_FMA3_enable(0) est déclarée dans <math.h>, et il n’est disponible que lorsque vous générez pour x64. Ce problème affecte uniquement les x64 bibliothèques (.) Ainsi, la bibliothèque de mathématiques rétablir les implémentations non-FMA3. </math.h>

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 3174417 - Dernière mise à jour : 07/28/2016 08:21:00 - Révision : 1.0

Visual Studio 2013 Community Edition

  • kbfix kbqfe atdownload kbexpertiseadvanced kbsurveynew kbmt KB3174417 KbMtfr
Commentaires