"無効な命令例外を Visual C++ 2013年クラッシュに組み込まれているプログラムを修正します。

重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。

英語版 KB:3174417
現象
Microsoft Visual C++ 2013年を使用してプログラムをビルドすると、プログラムがクラッシュして"無効な命令例外が表示されます。これは、2013 x64 C の Visual C++ ランタイム (CRT) の一部の浮動小数点数値演算ライブラリ関数は適切にチェックするかどうか特定 AVX と FMA3 手順については、関数を使用しようとする前にために発生します。指示が使用可能でない場合は、これらの関数への呼び出しが発生する無効な命令例外 (0xc000001d)。ログ、log10、pow、および他のユーザーに影響を受ける関数が含まれます。

この問題は、次のシナリオで発生する可能性があります。
  • AVX がサポートされていない Windows オペレーティング システムの以前のバージョンの状態 (Windows Vista の場合など) の保存 AVX 命令セットをサポートするコンピューター上で使用するかどうか
  • AVX の状態の保存は、オペレーティング システムのブート構成で明示的に無効にする場合
  • Windows プレインストール環境 (Windows PE) で

    注: <b> Windows PE には、AVX の状態の保存をサポートしていません。

Microsoft Connect には、この問題を報告されています。

原因
2013 x64 C の Visual C++ ランタイムでは、オペレーティング システムが AVX または FMA3 命令を実行しようとする前に、AVX の状態保存をサポートしているかどうかはチェックしませんので、この問題が発生します。
解決方法
Visual C++ 2013年を使用して組み込まれているすべての影響を受ける C++ バイナリは、C ランタイムの DLL (msvcr120.dll) を使用している場合、更新された Microsoft Visual C++ 2013年再頒布可能 – 12.0.40660.0 またはそれ以降のバージョンをインストールします。

影響を受ける、C++ のバイナリ ファイルは、Visual C++ 2013 C ランタイムを静的にリンクを 3174417 の修正プログラムをインストールし、再構築して影響を受けるバイナリを再配置して、Visual Studio の 2013年のインストールを更新しなければなりません。

<b>この問題は、以前のバージョンの Visual C++ C ランタイム (Visual C++ 2012年と以前のバージョン) には影響しません。Visual C++ 2015年によって使用されるユニバーサル CRT の最初のリリースの前に、問題が修正されました。

Microsoft ダウンロード センター

静的にリンクされている Visual C++ 2013 C ランタイムを更新するには、3174417 の修正プログラムは、ダウンロードのみの更新プログラムとしてリリースし、Windows Update 経由で配布されていません。Microsoft ダウンロード センター web サイトで使用可能になります。

ダウンロードパッケージのダウンロード

動的にリンクされている Visual C++ 2013 C ランタイムの Dll、更新済みの更新を再頒布可能があります。詳細については、次のマイクロソフト サポート技術情報資料を参照してください。

回避策
この問題を回避は、この問題が発生した場合の数値演算ライブラリの FMA3 を無効にします。GetEnabledXStateFeaturesを呼び出すと、明示的に_set_FMA3_enable(0)を呼び出すことによって、CRT の AVX を無効にするシステムが AVX 命令をサポートするかどうかを照会することができます。

詳細については、 XState のコンテキストを使用します。 MSDN の web サイトです。

関数_set_FMA3_enable(0)は、<math.h>で宣言されているし、は x64 用のビルド時にのみ使用します。(この問題、x64 のみに影響を及ぼすライブラリです。)これにより、FMA3 ではない実装を使用してに戻すには数値演算ライブラリです。 </math.h>

警告: この記事は自動翻訳されています

プロパティ

文書番号:3174417 - 最終更新日: 07/29/2016 05:54:00 - リビジョン: 1.0

Visual Studio 2013 Community Edition

  • kbfix kbqfe atdownload kbexpertiseadvanced kbsurveynew kbmt KB3174417 KbMtja
フィードバック