The Execution Monitor compilation variants and procedures

| > The Execution Monitor > Compilation |

### The Execution Monitor compilation variants and procedures

#### Implementation

The Execution Monitor is implemented in two modules: one header file and one source file.

`boost/test/execution_monitor.hpp` | defines abstract execution monitor interfaces and implements execution exception.
`libs/test/execution_monitor.hpp` | provides the Execution Monitor implementation for all supported configurations, including Microsoft structured exception based, UNIX signals.

You may use this component in both debug and release modes, but in release mode the Execution Monitor won't catch Microsoft C runtime debug events.

#### Standalone library compilation

To compile the Execution Monitor as standalone library compose it using only `execution-monitor.cpp` as a source file. Alternatively you can add this file directly to the list of source files for your project. Boost Test Library's components include this file as a part of their compilation procedure.

#### Direct include

In some cases you may want to include the source file along with header file into your sources. But be aware that to be able to catch all kinds of standard exceptions and to implement signal handling logic this file will bring a lot of dependencies.