Mono

Section: Misc. Reference Manual Pages (ccrewrite)
Page Index
 

NAME

ccrewrite - Rewrite CLR assemblies for runtime code contract verification.  

SYNOPSIS

ccrewrite --assembly=<assembly> [options]  

DESCRIPTION

Rewrite CLR assemblies to convert calls into the System.Diagnostics.Contracts namespace to perform runtime contract verification. This includes contract inheritance for virtual methods.

The assembly must have been built with the symbol CONTRACTS_FULL defined, otherwise the calls to the contract methods will have been removed by the compiler.

Currently only pre-conditions are supported, using the Contract.Requires() method. Contract inheritance for virtual methods is supported. Only a limited range of operations and types can be used within a pre-condition, an error message will be shown if ccrewrite is unable to process the specified assembly.  

CONFIGURATION OPTIONS

--assembly <assembly-name>
The assembly to rewrite. If no --output option is specified, then this file is overwritten with the rewritten version.
--debug
Use debug information if available to improve the usefulness of contract failure messages.
--help
Show help for ccrewrite, listing configuration options.
--level <level> (default=4)
Set which contract types are present in rewritten assembly: 0 = No contracts; 1 = Release requires; 2 = Requires; 3 = Ensures; 4 = Invariants; (Each level includes all previous levels)
--output <file-name>
Write the rewritten assembly to the specified file. If this is not present then the input assembly file is overwritten with the rewritten version.
--rewrite (default=true)
Rewrite the assembly. If false, then nothing is done.
--throwOnFailure (default=false)
Throw a ContractException on unhandled contract failure. The default behaviour is to Assert.

 

AUTHOR

Written by Chris Bacon  

COPYRIGHT

Copyright (C) 2010 Chris Bacon. Released under MIT license.  

WEB SITE

Visit http://www.mono-project.com for details


 

Index

NAME
SYNOPSIS
DESCRIPTION
CONFIGURATION OPTIONS
AUTHOR
COPYRIGHT
WEB SITE
LinuxReviews : manual page archive : man1