How to: Use Native Run-Time Checks

In a Visual Studio C++ project, you can use native runtime_checks to catch common run-time errors such as:

  • Stack pointer corruption.

  • Overruns of local arrays.

  • Stack corruption.

  • Dependencies on uninitialized local variables.

  • Loss of data on an assignment to a shorter variable.

    If you use /RTC with an optimized (/O) build, a compiler error results. If you use a runtime_checks pragma in an optimized build, the pragma has no effect.

    When you debug a program that has run-time checks enabled, the default action is for the program to stop and break to the debugger when a run-time error occurs. You can change this default behavior for any run-time check. For more information, see Managing Exceptions with the Debugger.

    The following procedures describe how to enable native run-time checks in a debug build, and how to modify native run-time check behavior.

    Other topics in this section provide information about:

  • Customizing Run-Time Checks with the C Run-Time Library

  • Using Run-Time Checks without the C Run-Time Library

To enable native run-time checks in a debug build

  • Use the /RTC option and link with the debug version of a C run-time library (/MDd, for example).

To modify native run-time check behavior

  • Use the runtime_checks pragma.

See also