MLcov is a code coverage tool for Objective Caml programs.
It relies on a source code instrumentation technique which allows measuring of Modified Condition/Decision Coverage (MC/DC), the criterion involved in the DO-178B standard to ensure that safety-critical software is tested adequately.

The tool is available as a patch against the version 3.12.0 of the Objective Caml compiler sources.
It is distributed under the CeCILL-B license and is copyrighted by Esterel Technologies.

Build the tool

In this guide, we assume that the user has access to a UNIX shell providing the wget, patch and make commands.
We also assume that you have OCaml 3.12.0 installed, as it may not build with an other version of OCaml...

Use the tool

Now that we have compiled MLcov, let's try it on a little example!

MLcov is currently used by Esterel Technologies as a verification tool for the certification of a DO-178B level A code generator written in Objective Caml.


For more information about MLcov, please consult the PDF documentation:

For further details on the instrumentation algorithm or the use of MLcov in a DO-178B process, you may refer to the following papers:

Related work: you can also try out ZAMcov for non-intrusive code coverage of Objective Caml programs.


Main developer: Thomas Moniot.
You can contact me by email:

FirstName DOT LastName AT gmail DOT com

Bug reports, remarks and questions are welcome!