1Mono(ccrewrite) Mono(ccrewrite)
2
3
4
6 ccrewrite - Rewrite CLR assemblies for runtime code contract verifica‐
7 tion.
8
10 ccrewrite --assembly=<assembly> [options]
11
13 Rewrite CLR assemblies to convert calls into the System.Diagnos‐
14 tics.Contracts namespace to perform runtime contract verification. This
15 includes contract inheritance for virtual methods.
16
17 The assembly must have been built with the symbol CONTRACTS_FULL
18 defined, otherwise the calls to the contract methods will have been
19 removed by the compiler.
20
21 Currently only pre-conditions are supported, using the Con‐
22 tract.Requires() method. Contract inheritance for virtual methods is
23 supported. Only a limited range of operations and types can be used
24 within a pre-condition, an error message will be shown if ccrewrite is
25 unable to process the specified assembly.
26
28 --assembly <assembly-name>
29 The assembly to rewrite. If no --output option is specified,
30 then this file overwritten with the rewritten version.
31
32 --debug
33 Use debug information if available to improve the usefulness of
34 contract failure messages.
35
36 --help Show help for ccrewrite, listing configuration options.
37
38 --level <level> (default=4)
39 Set the which contract types are present in rewritten assembly:
40 0 = No contracts; 1 = Release requires; 2 = Requires; 3 =
41 Ensures; 4 = Invariants; (Each level includes all previous lev‐
42 els)
43
44 --output <file-name>
45 Write the rewritten assembly to the specified file. If this is
46 not present then the input assembly file is overwritten with the
47 rewritten version.
48
49 --rewrite (default=true)
50 Rewrite the assembly. If false, then nothing is done.
51
52 --throwOnFailure (default=false)
53 Throw a ContractException on unhandled contract failure. The
54 default behaviour is to Assert.
55
56
57
59 Written by Chris Bacon
60
62 Copyright (C) 2010 Chris Bacon. Released under MIT license.
63
65 Visit http://www.mono-project.com for details
66
67
68
69 Mono(ccrewrite)