Applies ToVisual Studio Community 2013

증상

Microsoft Visual C++ 2013을 사용 하 여 프로그램을 작성할 때 프로그램이 충돌 하 고 "잘못 된 명령" 예외가 발생 합니다. 일부 부동 소수점 수학 라이브러리 함수 Visual C++ 2013 x64 C 런타임 (CRT) 함수를 사용 하려고 하기 전에 특정 AVX 및 FMA3 지시를 사용할 수 있는지 제대로 확인 하지 않습니다 때문에 발생 합니다. 지침을 사용할 수 없는 경우 이러한 함수를 호출 하면 예외 잘못 된 명령 (0xc000001d). 영향을 받는 함수는 로그, log10와 pow를이 있습니다.이 문제는 다음 시나리오에서 발생할 가능성이 가장 높습니다.

  • AVX를 지원 하지 않는 Windows 운영 체제의 이전 버전에서 상태 저장 (예: Windows Vista)는 AVX 명령 집합을 지 원하는 컴퓨터에서 사용 되는 경우

  • AVX 상태 저장 운영 체제 부팅 구성에서 명시적으로 사용 하지 않으면

  • Windows 사전 설치 환경 (Windows PE)에서참고: Windows PE는 AVX 상태 저장을 지원 하지 않습니다.

Microsoft Connect에서이 문제가 보고 되었습니다.

x64 log() 함수 (Vista x64 충돌) 하므로 운영 체제에 관계 없이 vpsrlq AVX 명령 사용 하 여 Visual Studio 2013 RTM: x64 c + + 코드 생성 버그 AVX2 지침

원인

Visual C++ 2013 x64 C 런타임 운영 체제는 AVX AVX 또는 FMA3 명령을 실행 하기 전에 상태 저장을 지원 하는지 여부를 확인 하지 않습니다 때문에이 문제가 발생 합니다.

해결 방법

C 런타임 DLL (msvcr120.dll)을 사용 하는 모든 영향을 받는 c + + Visual C++ 2013을 사용 하 여 빌드된 바이너리 업데이트 Microsoft Visual C++ 2013 재배포 가능 패키지-12.0.40660.0 또는 이후 버전을 설치 합니다.Visual C++ 2013 C 런타임에 정적으로 링크 하는 영향된에서 c + + 이진 파일을 하는 경우 3174417 핫픽스를 설치 하 고 다시 영향을 받는 바이너리를 다시 배포 하 여 2013 Visual Studio 설치를 업데이트 해야 합니다.참고: 이 문제는 이전 버전의 Visual C++ C 런타임 (Visual C++ 2012 및 이전 버전) 적용 되지 않습니다. 2015 Visual C++에서 사용 되는 범용 CRT의 초기 릴리스 전에 문제를 해결 했습니다.

Microsoft 다운로드 센터

정적으로 링크 된 Visual C++ 2013 C 런타임을 업데이트 하려면 3174417 핫픽스 다운로드 전용 업데이트로 해제 되 고 Windows Update를 통해 배포 되지 않습니다. Microsoft 다운로드 센터 웹 사이트에서 가능 하다.Download 패키지를 지금 다운로드 하십시오.동적으로 링크 된 Visual C++ 2013 C 런타임 Dll 업데이트 프로그램을 업데이트 하려면 재배포 가능 패키지를 사용할 수 있습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조 하십시오.

3179560 업데이트 Visual C++ 2013와 Visual C++ 재배포 가능 패키지

해결 방법

이 문제를 해결 하려면이 문제의 영향을 받는 경우 수학 라이브러리의 FMA3을 비활성화 합니다. GetEnabledXStateFeatures 를 호출 하 고 _set_FMA3_enable(0)를 호출 하 여 CRT에 AVX를 명시적으로 해제 하 여 시스템 AVX 지침을 지원 하는지 여부를 쿼리할 수 있습니다.자세한 내용은 MSDN 웹 사이트에서 XState 컨텍스트를 사용 하 여 작업을 참조 하십시오.< Math.h >에 _set_FMA3_enable(0) 함수 선언 및 x64를 구성한 경우에 표시 됩니다. (이 문제는 x64만 적용 라이브러리.) 따라서 수학 라이브러리를 비 FMA3 구현을 사용 하 여 되돌릴 수 있습니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.