Skip to content

Commit 9da5979

Browse files
committed
Add some documents
Signed-off-by: Lin Liu <[email protected]> Author: Lin Liu <[email protected]>
1 parent c558624 commit 9da5979

6 files changed

+520
-0
lines changed

Sharing/function.gif

68.6 KB
Loading

Sharing/function.vsd

197 KB
Binary file not shown.

Sharing/instrument/Instrumented CLI instructions of method Instrument.txt

Lines changed: 412 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
.method private hidebysig static void Instrument(string assemblyPath,
2+
class Gaillard.SharpCover.Program/InstrumentConfig config,
3+
class [mscorlib]System.IO.TextWriter writer,
4+
int32& instrumentIndex) cil managed
5+
{
6+
// Code size 192 (0xc0)
7+
.maxstack 5
8+
.locals init ([0] class [Mono.Cecil]Mono.Cecil.AssemblyDefinition 'assembly',
9+
[1] class [Mono.Cecil]Mono.Cecil.MethodReference countReference,
10+
[2] class [Mono.Cecil]Mono.Cecil.TypeDefinition 'type',
11+
[3] string counterPath,
12+
[4] class [Mono.Cecil]Mono.Cecil.ReaderParameters '<>g__initLocal4',
13+
[5] class [Mono.Cecil]Mono.Cecil.WriterParameters '<>g__initLocal5',
14+
[6] class [mscorlib]System.Collections.Generic.IEnumerator`1<class [Mono.Cecil]Mono.Cecil.TypeDefinition> CS$5$0000,
15+
[7] bool CS$4$0001)
16+
IL_0000: nop
17+
IL_0001: ldarg.0
18+
IL_0002: newobj instance void [Mono.Cecil]Mono.Cecil.ReaderParameters::.ctor()
19+
IL_0007: stloc.s '<>g__initLocal4'
20+
IL_0009: ldloc.s '<>g__initLocal4'
21+
IL_000b: ldc.i4.1
22+
IL_000c: callvirt instance void [Mono.Cecil]Mono.Cecil.ReaderParameters::set_ReadSymbols(bool)
23+
IL_0011: nop
24+
IL_0012: ldloc.s '<>g__initLocal4'
25+
IL_0014: call class [Mono.Cecil]Mono.Cecil.AssemblyDefinition [Mono.Cecil]Mono.Cecil.AssemblyDefinition::ReadAssembly(string,
26+
class [Mono.Cecil]Mono.Cecil.ReaderParameters)
27+
IL_0019: stloc.0
28+
IL_001a: ldloc.0
29+
IL_001b: callvirt instance class [Mono.Cecil]Mono.Cecil.ModuleDefinition [Mono.Cecil]Mono.Cecil.AssemblyDefinition::get_MainModule()
30+
IL_0020: ldsfld class [mscorlib]System.Reflection.MethodInfo Gaillard.SharpCover.Program::countMethodInfo
31+
IL_0025: callvirt instance class [Mono.Cecil]Mono.Cecil.MethodReference [Mono.Cecil]Mono.Cecil.ModuleDefinition::Import(class [mscorlib]System.Reflection.MethodBase)
32+
IL_002a: stloc.1
33+
IL_002b: nop
34+
IL_002c: ldloc.0
35+
IL_002d: callvirt instance class [Mono.Cecil]Mono.Cecil.ModuleDefinition [Mono.Cecil]Mono.Cecil.AssemblyDefinition::get_MainModule()
36+
IL_0032: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerable`1<class [Mono.Cecil]Mono.Cecil.TypeDefinition> [Mono.Cecil]Mono.Cecil.ModuleDefinition::GetTypes()
37+
IL_0037: callvirt instance class [mscorlib]System.Collections.Generic.IEnumerator`1<!0> class [mscorlib]System.Collections.Generic.IEnumerable`1<class [Mono.Cecil]Mono.Cecil.TypeDefinition>::GetEnumerator()
38+
IL_003c: stloc.s CS$5$0000
39+
.try
40+
{
41+
IL_003e: br.s IL_0053
42+
IL_0040: ldloc.s CS$5$0000
43+
IL_0042: callvirt instance !0 class [mscorlib]System.Collections.Generic.IEnumerator`1<class [Mono.Cecil]Mono.Cecil.TypeDefinition>::get_Current()
44+
IL_0047: stloc.2
45+
IL_0048: ldloc.2
46+
IL_0049: ldloc.1
47+
IL_004a: ldarg.1
48+
IL_004b: ldarg.2
49+
IL_004c: ldarg.3
50+
IL_004d: call void Gaillard.SharpCover.Program::Instrument(class [Mono.Cecil]Mono.Cecil.TypeDefinition,
51+
class [Mono.Cecil]Mono.Cecil.MethodReference,
52+
class Gaillard.SharpCover.Program/InstrumentConfig,
53+
class [mscorlib]System.IO.TextWriter,
54+
int32&)
55+
IL_0052: nop
56+
IL_0053: ldloc.s CS$5$0000
57+
IL_0055: callvirt instance bool [mscorlib]System.Collections.IEnumerator::MoveNext()
58+
IL_005a: stloc.s CS$4$0001
59+
IL_005c: ldloc.s CS$4$0001
60+
IL_005e: brtrue.s IL_0040
61+
IL_0060: leave.s IL_0076
62+
} // end .try
63+
finally
64+
{
65+
IL_0062: ldloc.s CS$5$0000
66+
IL_0064: ldnull
67+
IL_0065: ceq
68+
IL_0067: stloc.s CS$4$0001
69+
IL_0069: ldloc.s CS$4$0001
70+
IL_006b: brtrue.s IL_0075
71+
IL_006d: ldloc.s CS$5$0000
72+
IL_006f: callvirt instance void [mscorlib]System.IDisposable::Dispose()
73+
IL_0074: nop
74+
IL_0075: endfinally
75+
} // end handler
76+
IL_0076: nop
77+
IL_0077: ldloc.0
78+
IL_0078: ldarg.0
79+
IL_0079: newobj instance void [Mono.Cecil]Mono.Cecil.WriterParameters::.ctor()
80+
IL_007e: stloc.s '<>g__initLocal5'
81+
IL_0080: ldloc.s '<>g__initLocal5'
82+
IL_0082: ldc.i4.1
83+
IL_0083: callvirt instance void [Mono.Cecil]Mono.Cecil.WriterParameters::set_WriteSymbols(bool)
84+
IL_0088: nop
85+
IL_0089: ldloc.s '<>g__initLocal5'
86+
IL_008b: callvirt instance void [Mono.Cecil]Mono.Cecil.AssemblyDefinition::Write(string,
87+
class [Mono.Cecil]Mono.Cecil.WriterParameters)
88+
IL_0090: nop
89+
IL_0091: ldtoken [Counter]Gaillard.SharpCover.Counter
90+
IL_0096: call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
91+
IL_009b: callvirt instance class [mscorlib]System.Reflection.Assembly [mscorlib]System.Type::get_Assembly()
92+
IL_00a0: callvirt instance string [mscorlib]System.Reflection.Assembly::get_Location()
93+
IL_00a5: stloc.3
94+
IL_00a6: ldloc.3
95+
IL_00a7: ldarg.0
96+
IL_00a8: call string [mscorlib]System.IO.Path::GetDirectoryName(string)
97+
IL_00ad: ldloc.3
98+
IL_00ae: call string [mscorlib]System.IO.Path::GetFileName(string)
99+
IL_00b3: call string [mscorlib]System.IO.Path::Combine(string,
100+
string)
101+
IL_00b8: ldc.i4.1
102+
IL_00b9: call void [mscorlib]System.IO.File::Copy(string,
103+
string,
104+
bool)
105+
IL_00be: nop
106+
IL_00bf: ret
107+
} // end of method Program::Instrument
108+

Sharing/workflow.gif

17.9 KB
Loading

Sharing/workflow.vsd

86 KB
Binary file not shown.

0 commit comments

Comments
 (0)