ネイティブ ランタイム チェックを使用する
Visual Studio C++ プロジェクトでは、ネイティブ runtime_checks を使用して、次のような一般的なランタイム エラーをキャッチできます。
スタック ポインターの破損
ローカル配列のオーバーラン
スタックの破損
初期化されていないローカル変数への依存性
短い変数への代入によるデータの消失
最適化された ( /RTC ) ビルドで/Oを使用すると、コンパイラ エラーが発生します。
runtime_checks
プラグマを最適化されたビルドに使用しても効果はありません。ランタイム チェックが有効になっている状態のプログラムをデバッグすると、既定の動作では、ランタイム エラーの発生時にプログラムが停止し、デバッガーが起動されます。 この既定の動作は、任意のランタイム チェックで変更できます。 詳細については、「デバッガーでの例外の管理」を参照してください。
次の手順で、デバッグ ビルドでネイティブ ランタイム チェックを有効にする方法と、ネイティブ ランタイム チェックの動作を変更する方法を説明します。
このセクションのその他のトピックでは、次の内容について説明します。
デバッグ ビルドでネイティブ ランタイム チェックを有効にするには
/RTC オプションを使用して、C ランタイム ライブラリのデバッグ バージョン (/MDd など) とリンクします。
Visual Studio でオプションを設定するには、/RTC (実行時エラー チェック) リファレンス記事の「解説」セクションを参照してください。 この値は、Smaller Type Check プロパティではなく、 Basic Runtime Checks プロパティで設定します。 Smaller Type Check プロパティは推奨されません。
ネイティブ ランタイム チェックの動作を変更するには
runtime_checks
プラグマを使用します。