ネイティブ ランタイム チェックを使用する

Visual Studio C++ プロジェクトでは、ネイティブ runtime_checks を使用して、次のような一般的なランタイム エラーをキャッチできます。

  • スタック ポインターの破損

  • ローカル配列のオーバーラン

  • スタックの破損

  • 初期化されていないローカル変数への依存性

  • 短い変数への代入によるデータの消失

    最適化された ( /RTC ) ビルドで/Oを使用すると、コンパイラ エラーが発生します。 runtime_checks プラグマを最適化されたビルドに使用しても効果はありません。

    ランタイム チェックが有効になっている状態のプログラムをデバッグすると、既定の動作では、ランタイム エラーの発生時にプログラムが停止し、デバッガーが起動されます。 この既定の動作は、任意のランタイム チェックで変更できます。 詳細については、「デバッガーでの例外の管理」を参照してください。

    次の手順で、デバッグ ビルドでネイティブ ランタイム チェックを有効にする方法と、ネイティブ ランタイム チェックの動作を変更する方法を説明します。

    このセクションのその他のトピックでは、次の内容について説明します。

  • C ランタイム ライブラリによるネイティブ ランタイム チェックのカスタマイズ

デバッグ ビルドでネイティブ ランタイム チェックを有効にするには

  • /RTC オプションを使用して、C ランタイム ライブラリのデバッグ バージョン (/MDd など) とリンクします。

    Visual Studio でオプションを設定するには、/RTC (実行時エラー チェック) リファレンス記事の「解説」セクションを参照してください。 この値は、Smaller Type Check プロパティではなく、 Basic Runtime Checks プロパティで設定します。 Smaller Type Check プロパティは推奨されません。

ネイティブ ランタイム チェックの動作を変更するには

  • runtime_checks プラグマを使用します。