Skip to content

Instantly share code, notes, and snippets.

@trylek
Created May 8, 2021 00:01
Show Gist options
  • Save trylek/15f057a22fb3c7dd6114369dd12e0c60 to your computer and use it in GitHub Desktop.
Save trylek/15f057a22fb3c7dd6114369dd12e0c60 to your computer and use it in GitHub Desktop.
======================== R2R Header =========================
Signature: 0x00525452 (RTR)
RelativeVirtualAddress: 0x00001540
Size: 148 bytes
MajorVersion: 0x0005
MinorVersion: 0x0003
Flags: 0x00000009
- READYTORUN_FLAG_PlatformNeutralSource
- READYTORUN_FLAG_NonSharedPInvokeStubs
======================= R2R Sections ========================
11 sections
_______________________________________________
Type: CompilerIdentifier (100)
Size: 24 bytes
Crossgen2 42.42.42.4242
_______________________________________________
Type: ImportSections (101)
Size: 120 bytes
"Failed to verify type of Fld1 in: " (STRING_HANDLE)
"string" (STRING_HANDLE)
"Test Failed at location: " (STRING_HANDLE)
"Test Failed" (STRING_HANDLE)
"Test Passed" (STRING_HANDLE)
0 0 !0 Gen`1<__Canon>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<double>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<int[]>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<int>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<object[][]>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<object>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<RefX1`1<int>>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<string[...,...]>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<string>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<ValX1`1<__Canon>>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<ValX1`1<string>>.Fld1 (VERIFY_FIELD_OFFSET)
0 72 int Test.counter (VERIFY_FIELD_OFFSET)
0 76 bool Test.result (VERIFY_FIELD_OFFSET)
bool Gen`1<__Canon>.InstVerify(System.Type) (METHOD_ENTRY) -- I(48) T(50) R(58)
bool Gen`1<double>.InstVerify(System.Type) (METHOD_ENTRY) -- I(48) R(50)
bool Gen`1<int>.InstVerify(System.Type) (METHOD_ENTRY) -- I(48) R(50)
bool Outer+IGen`1<int[]>.InstVerify(System.Type) (VIRTUAL_ENTRY) -- R(48 50)
bool Outer+IGen`1<object[][]>.InstVerify(System.Type) (VIRTUAL_ENTRY) -- R(48 50)
bool Outer+IGen`1<object>.InstVerify(System.Type) (VIRTUAL_ENTRY) -- R(48 50)
bool Outer+IGen`1<string[0...,0...]>.InstVerify(System.Type) (VIRTUAL_ENTRY) -- R(48 50)
bool Outer+IGen`1<string>.InstVerify(System.Type) (VIRTUAL_ENTRY) -- R(48 50)
bool Outer+IGen`1<System.Guid>.InstVerify(System.Type) (VIRTUAL_ENTRY) -- R(48 50)
bool Outer+IGen`1<ValX1`1<string>>.InstVerify(System.Type) (VIRTUAL_ENTRY) -- R(48 50)
bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY) -- R(48 50)
BYREF_WRITE_BARRIER (HELPER)
CHECK_InstructionSetSupport X86Base+ Sse+ Sse2+
CHECK_InstructionSetSupport X86Base+ Sse+ Sse2+ Sse3+ Ssse3+ Sse41+ Sse42+
CHECKED_WRITE_BARRIER (HELPER)
DELAYLOAD_HELPER (HELPER)
DELAYLOAD_METHODCALL (HELPER)
double (TYPE_HANDLE)
Gen`1<__Canon> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<double> (NEW_OBJECT)
Gen`1<double> (TYPE_HANDLE)
Gen`1<double> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 8 (VERIFY_TYPE_LAYOUT)
Gen`1<int[]> (NEW_OBJECT)
Gen`1<int[]> (TYPE_HANDLE)
Gen`1<int[]> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<int> (NEW_OBJECT)
Gen`1<int> (TYPE_HANDLE)
Gen`1<int> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 4 Align 4 (VERIFY_TYPE_LAYOUT)
Gen`1<object[][]> (NEW_OBJECT)
Gen`1<object[][]> (TYPE_HANDLE)
Gen`1<object[][]> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<object> (NEW_OBJECT)
Gen`1<object> (TYPE_HANDLE)
Gen`1<object> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<RefX1`1<int>> (NEW_OBJECT)
Gen`1<RefX1`1<int>> (TYPE_HANDLE)
Gen`1<RefX1`1<int>> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<string[...,...]> (NEW_OBJECT)
Gen`1<string[...,...]> (TYPE_HANDLE)
Gen`1<string[...,...]> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<string> (NEW_OBJECT)
Gen`1<string> (TYPE_HANDLE)
Gen`1<string> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<System.Guid> (NEW_OBJECT)
Gen`1<System.Guid> (TYPE_HANDLE)
Gen`1<System.Guid> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 16 Align 4 (VERIFY_TYPE_LAYOUT)
Gen`1<ValX1`1<__Canon>> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 1 Align 1 (VERIFY_TYPE_LAYOUT)
Gen`1<ValX1`1<string>> (NEW_OBJECT)
Gen`1<ValX1`1<string>> (TYPE_HANDLE)
Gen`1<ValX1`1<string>> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 1 Align 1 (VERIFY_TYPE_LAYOUT)
GET_RUNTIME_TYPE_HANDLE (HELPER)
int (TYPE_HANDLE)
int[] (NEW_ARRAY)
int[] (TYPE_HANDLE)
MODULE (HELPER)
NEW_MULTI_DIM_ARR (HELPER)
object (NEW_OBJECT)
object (TYPE_HANDLE)
object[][] (NEW_ARRAY)
object[][] (TYPE_HANDLE)
Outer+IGen`1<double> (TYPE_HANDLE)
Outer+IGen`1<int> (TYPE_HANDLE)
PERSONALITY_ROUTINE (HELPER)
PERSONALITY_ROUTINE_FILTER_FUNCLET (HELPER)
RefX1`1<int> (NEW_OBJECT)
RefX1`1<int> (TYPE_HANDLE)
string (TYPE_HANDLE)
string System.Int32.ToString() (METHOD_ENTRY) -- I(48)
string System.Object.ToString() (VIRTUAL_ENTRY) -- R(48)
string System.String.Concat(string, string) (METHOD_ENTRY) -- R(48 50)
string[...,...] (TYPE_HANDLE)
System.Guid (TYPE_HANDLE)
System.Type System.Object.GetType() (METHOD_ENTRY) -- R(48)
Test (STATIC_BASE_NON_GC)
TYPE_DICTIONARY_LOOKUP: Outer+IGen`1<var #0> (TYPE_HANDLE)
ValX1`1<__Canon> (TYPE_HANDLE)
ValX1`1<__Canon> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 1 Align 1 (VERIFY_TYPE_LAYOUT)
ValX1`1<string> (TYPE_HANDLE)
ValX1`1<string> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 1 Align 1 (VERIFY_TYPE_LAYOUT)
void Gen`1<System.Guid>..ctor(!0) (METHOD_ENTRY) -- I(48 50)
void System.Console.WriteLine(string) (METHOD_ENTRY) -- R(48)
void Test.Eval(bool) (METHOD_ENTRY)
WRITE_BARRIER (HELPER)
_______________________________________________
Type: RuntimeFunctions (102)
Size: 252 bytes
Index | StartRVA | EndRVA | UnwindRVA
-----------------------------------------
0 | 00001BD0 | 00001bd1 | 00001888
1 | 00001BE0 | 00001be1 | 00001888
2 | 00001BF0 | 00001bf1 | 00001888
3 | 00001C00 | 00001c4c | 00001894
4 | 00001C50 | 00001fb4 | 000018A8
5 | 00001FC0 | 00001fc1 | 00001888
6 | 00001FD0 | 00001fe8 | 00001914
7 | 00001FF0 | 00001ff5 | 00001924
8 | 00002000 | 00002084 | 00001930
9 | 00002090 | 00002091 | 00001888
10 | 000020A0 | 000020a3 | 0000194C
11 | 000020B0 | 00002134 | 00001930
12 | 00002140 | 0000214c | 00001958
13 | 00002150 | 00002151 | 00001888
14 | 00002160 | 00002161 | 00001888
15 | 00002170 | 0000217b | 00001964
16 | 00002180 | 0000220f | 00001970
17 | 00002210 | 00002211 | 00001888
18 | 00002220 | 00002221 | 00001888
19 | 00002230 | 00002231 | 00001888
20 | 00002240 | 00002241 | 00001888
_______________________________________________
Type: MethodDefEntryPoints (103)
Size: 54 bytes
06000001: void RefX0..ctor()
06000002: void RefY0..ctor()
06000009: void Outer..ctor()
0600000C: void Test.Eval(bool)
0600000D: int Test.Main()
0600000E: void Test..ctor()
0600000F: void Test..cctor()
_______________________________________________
Type: DebugInfo (105)
Size: 413 bytes
Unsupported section type DebugInfo
_______________________________________________
Type: DelayLoadMethodCallThunks (106)
Size: 65 bytes
Unsupported section type DelayLoadMethodCallThunks
_______________________________________________
Type: AvailableTypes (108)
Size: 67 bytes
ValX3`3
ValX0
<Module>
ValX1`1
RefY3`3
Gen`1
RefY1`1
Test
RefX2`2
Outer
ValX2`2
RefX0
ValY0
ValY3`3
RefX1`1
ValY1`1
RefX3`3
ValY2`2
Outer+IGen`1
RefY0
RefY2`2
_______________________________________________
Type: InstanceMethodEntryPoints (109)
Size: 196 bytes
0x05 -> void Gen`1<double>..ctor(!0)
0x06 -> void Gen`1<ValX1`1<__Canon>>..ctor(!0)
0x07 -> bool Gen`1<__Canon>.InstVerify(System.Type)
0x44 -> void RefX2`2<__Canon,__Canon>..ctor()
0x65 -> void RefY1`1<__Canon>..ctor()
0xA8 -> void RefX1`1<__Canon>..ctor()
0xBD -> bool Gen`1<double>.InstVerify(System.Type)
0xBF -> void Gen`1<__Canon>..ctor(!0)
0xFC -> void RefX3`3<__Canon,__Canon,__Canon>..ctor()
0x18 -> void RefX1`1<int>..ctor()
0x47 -> bool Gen`1<int>.InstVerify(System.Type)
0x8E -> void RefY2`2<__Canon,__Canon>..ctor()
0xE8 -> void RefY3`3<__Canon,__Canon,__Canon>..ctor()
0xFF -> void Gen`1<int>..ctor(!0)
_______________________________________________
Type: ManifestMetadata (112)
Size: 228 bytes
MSIL AssemblyRef's (3 entries):
[ID 0x01]: System.Runtime
[ID 0x02]: System.Console
Manifest metadata AssemblyRef's (0 entries):
_______________________________________________
Type: InliningInfo2 (114)
Size: 13 bytes
Inliners for inlinee 0600000A:
0600000D
Inliners for inlinee 06000003:
0600000D
_______________________________________________
Type: ManifestAssemblyMvids (118)
Size: 0 bytes
======================== R2R Methods ========================
21 methods
_______________________________________________
bool Gen`1<__Canon>.InstVerify(System.Type)
Handle: 0x0600000B
Rid: 11
Number of RuntimeFunctions: 1
Number of fixups: 3
"Failed to verify type of Fld1 in: " (STRING_HANDLE)
0 0 !0 Gen`1<__Canon>.Fld1 (VERIFY_FIELD_OFFSET)
Gen`1<__Canon> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
bool Gen`1<__Canon>.InstVerify(System.Type)
Size: 143 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0007
CountOfUnwindCodes: 4
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0007 FrameOffset 0x0000 NextOffset 0x0 Op 48
UnwindCode[2]: CodeOffset 0x0002 FrameOffset 0x0000 NextOffset 0x0 Op RSI(6)
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0002, Source Types: StackEmpty
IL Offset: 0x001b, Source Types: StackEmpty
IL Offset: 0x001d, Source Types: StackEmpty
IL Offset: 0x0042, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x12
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x12
End Offset: 0x17
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x12
Loc Type: VLT_REG
Register: R8
Variable Number: 1
Start Offset: 0x12
End Offset: 0x23
Loc Type: VLT_REG
Register: RDI
Variable Number: 2
Start Offset: 0x17
End Offset: 0x85
Loc Type: VLT_REG
Register: RBX
Variable Number: 4294967293
Start Offset: 0x0
End Offset: 0x12
Loc Type: VLT_REG
Register: RDX
Variable Number: 4294967293
Start Offset: 0x12
End Offset: 0x3B
Loc Type: VLT_REG
Register: RSI
0000: push rdi
UWOP_PUSH_NONVOL RDI(7) 0
0001: push rsi
UWOP_PUSH_NONVOL RSI(6) 0
0002: push rbx
UWOP_PUSH_NONVOL RBX(3) 0
0003: sub rsp, 48
UWOP_ALLOC_SMALL 48 0
0007: mov qword ptr [rsp + 40], rdx
000c: mov rsi, rdx
000f: mov rdi, r8
0012: mov ebx, 1
0017: mov rcx, qword ptr [rcx]
001a: call qword ptr [System.Type System.Object.GetType() (METHOD_ENTRY)]
0020: mov rcx, rax
0023: mov rdx, rdi
0026: lea r11, [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
002d: cmp dword ptr [rcx], ecx
002f: call qword ptr [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
0035: test al, al
0037: jne 0x0085
0039: xor ebx, ebx
003b: mov rcx, rsi
003e: call qword ptr [TYPE_DICTIONARY_LOOKUP: Outer+IGen`1<var #0> (TYPE_HANDLE)]
0044: mov rcx, rax
0047: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
004d: mov rcx, rax
0050: mov r11, qword ptr ["Failed to verify type of Fld1 in: " (STRING_HANDLE)]
0057: mov rsi, qword ptr [r11]
005a: test rcx, rcx
005d: jne 0x0063
005f: xor edx, edx
0061: jmp 0x0073
0063: lea r11, [string System.Object.ToString() (VIRTUAL_ENTRY)]
006a: call qword ptr [string System.Object.ToString() (VIRTUAL_ENTRY)]
0070: mov rdx, rax
0073: mov rcx, rsi
0076: call qword ptr [string System.String.Concat(string, string) (METHOD_ENTRY)]
007c: mov rcx, rax
007f: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
0085: mov eax, ebx
0087: add rsp, 48
008b: pop rbx
008c: pop rsi
008d: pop rdi
008e: ret
_______________________________________________
bool Gen`1<double>.InstVerify(System.Type)
Handle: 0x0600000B
Rid: 11
Number of RuntimeFunctions: 1
Number of fixups: 5
"Failed to verify type of Fld1 in: " (STRING_HANDLE)
0 0 !0 Gen`1<double>.Fld1 (VERIFY_FIELD_OFFSET)
double (TYPE_HANDLE)
Gen`1<double> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 8 (VERIFY_TYPE_LAYOUT)
Outer+IGen`1<double> (TYPE_HANDLE)
bool Gen`1<double>.InstVerify(System.Type)
Size: 132 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0006
CountOfUnwindCodes: 3
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0006 FrameOffset 0x0000 NextOffset 0x0 Op 40
UnwindCode[2]: CodeOffset 0x0001 FrameOffset 0x0000 NextOffset 0x0 Op RDI(7)
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0002, Source Types: StackEmpty
IL Offset: 0x001b, Source Types: StackEmpty
IL Offset: 0x001d, Source Types: StackEmpty
IL Offset: 0x0042, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x9
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x9
Loc Type: VLT_REG
Register: RDX
Variable Number: 1
Start Offset: 0x9
End Offset: 0x1E
Loc Type: VLT_REG
Register: RSI
Variable Number: 2
Start Offset: 0xE
End Offset: 0x7B
Loc Type: VLT_REG
Register: RDI
0000: push rdi
UWOP_PUSH_NONVOL RDI(7) 0
0001: push rsi
UWOP_PUSH_NONVOL RSI(6) 0
0002: sub rsp, 40
UWOP_ALLOC_SMALL 40 0
0006: mov rsi, rdx
0009: mov edi, 1
000e: mov rcx, qword ptr [double (TYPE_HANDLE)]
0015: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
001b: mov rcx, rax
001e: mov rdx, rsi
0021: lea r11, [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
0028: cmp dword ptr [rcx], ecx
002a: call qword ptr [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
0030: test al, al
0032: jne 0x007b
0034: xor edi, edi
0036: mov rcx, qword ptr [Outer+IGen`1<double> (TYPE_HANDLE)]
003d: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
0043: mov rcx, rax
0046: mov r11, qword ptr ["Failed to verify type of Fld1 in: " (STRING_HANDLE)]
004d: mov rsi, qword ptr [r11]
0050: test rcx, rcx
0053: jne 0x0059
0055: xor edx, edx
0057: jmp 0x0069
0059: lea r11, [string System.Object.ToString() (VIRTUAL_ENTRY)]
0060: call qword ptr [string System.Object.ToString() (VIRTUAL_ENTRY)]
0066: mov rdx, rax
0069: mov rcx, rsi
006c: call qword ptr [string System.String.Concat(string, string) (METHOD_ENTRY)]
0072: mov rcx, rax
0075: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
007b: mov eax, edi
007d: add rsp, 40
0081: pop rsi
0082: pop rdi
0083: ret
_______________________________________________
bool Gen`1<int>.InstVerify(System.Type)
Handle: 0x0600000B
Rid: 11
Number of RuntimeFunctions: 1
Number of fixups: 5
"Failed to verify type of Fld1 in: " (STRING_HANDLE)
0 0 !0 Gen`1<int>.Fld1 (VERIFY_FIELD_OFFSET)
Gen`1<int> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 4 Align 4 (VERIFY_TYPE_LAYOUT)
int (TYPE_HANDLE)
Outer+IGen`1<int> (TYPE_HANDLE)
bool Gen`1<int>.InstVerify(System.Type)
Size: 132 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0006
CountOfUnwindCodes: 3
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0006 FrameOffset 0x0000 NextOffset 0x0 Op 40
UnwindCode[2]: CodeOffset 0x0001 FrameOffset 0x0000 NextOffset 0x0 Op RDI(7)
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0002, Source Types: StackEmpty
IL Offset: 0x001b, Source Types: StackEmpty
IL Offset: 0x001d, Source Types: StackEmpty
IL Offset: 0x0042, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x9
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x9
Loc Type: VLT_REG
Register: RDX
Variable Number: 1
Start Offset: 0x9
End Offset: 0x1E
Loc Type: VLT_REG
Register: RSI
Variable Number: 2
Start Offset: 0xE
End Offset: 0x7B
Loc Type: VLT_REG
Register: RDI
0000: push rdi
UWOP_PUSH_NONVOL RDI(7) 0
0001: push rsi
UWOP_PUSH_NONVOL RSI(6) 0
0002: sub rsp, 40
UWOP_ALLOC_SMALL 40 0
0006: mov rsi, rdx
0009: mov edi, 1
000e: mov rcx, qword ptr [int (TYPE_HANDLE)]
0015: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
001b: mov rcx, rax
001e: mov rdx, rsi
0021: lea r11, [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
0028: cmp dword ptr [rcx], ecx
002a: call qword ptr [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
0030: test al, al
0032: jne 0x007b
0034: xor edi, edi
0036: mov rcx, qword ptr [Outer+IGen`1<int> (TYPE_HANDLE)]
003d: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
0043: mov rcx, rax
0046: mov r11, qword ptr ["Failed to verify type of Fld1 in: " (STRING_HANDLE)]
004d: mov rsi, qword ptr [r11]
0050: test rcx, rcx
0053: jne 0x0059
0055: xor edx, edx
0057: jmp 0x0069
0059: lea r11, [string System.Object.ToString() (VIRTUAL_ENTRY)]
0060: call qword ptr [string System.Object.ToString() (VIRTUAL_ENTRY)]
0066: mov rdx, rax
0069: mov rcx, rsi
006c: call qword ptr [string System.String.Concat(string, string) (METHOD_ENTRY)]
0072: mov rcx, rax
0075: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
007b: mov eax, edi
007d: add rsp, 40
0081: pop rsi
0082: pop rdi
0083: ret
_______________________________________________
int Test.Main()
Handle: 0x0600000D
Rid: 13
Number of RuntimeFunctions: 1
Number of fixups: 47
"string" (STRING_HANDLE)
"Test Failed" (STRING_HANDLE)
"Test Passed" (STRING_HANDLE)
0 0 !0 Gen`1<double>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<int[]>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<int>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<object[][]>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<object>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<RefX1`1<int>>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<string[...,...]>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<string>.Fld1 (VERIFY_FIELD_OFFSET)
0 0 !0 Gen`1<ValX1`1<string>>.Fld1 (VERIFY_FIELD_OFFSET)
0 76 bool Test.result (VERIFY_FIELD_OFFSET)
CHECK_InstructionSetSupport X86Base+ Sse+ Sse2+ Sse3+ Ssse3+ Sse41+ Sse42+
double (TYPE_HANDLE)
Gen`1<double> (TYPE_HANDLE)
Gen`1<double> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 8 (VERIFY_TYPE_LAYOUT)
Gen`1<int[]> (TYPE_HANDLE)
Gen`1<int[]> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<int> (TYPE_HANDLE)
Gen`1<int> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 4 Align 4 (VERIFY_TYPE_LAYOUT)
Gen`1<object[][]> (TYPE_HANDLE)
Gen`1<object[][]> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<object> (TYPE_HANDLE)
Gen`1<object> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<RefX1`1<int>> (TYPE_HANDLE)
Gen`1<RefX1`1<int>> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<string[...,...]> (TYPE_HANDLE)
Gen`1<string[...,...]> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<string> (TYPE_HANDLE)
Gen`1<string> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout Size 8 GCLayout 1 (VERIFY_TYPE_LAYOUT)
Gen`1<System.Guid> (TYPE_HANDLE)
Gen`1<System.Guid> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 16 Align 4 (VERIFY_TYPE_LAYOUT)
Gen`1<ValX1`1<string>> (TYPE_HANDLE)
Gen`1<ValX1`1<string>> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 1 Align 1 (VERIFY_TYPE_LAYOUT)
int (TYPE_HANDLE)
int[] (TYPE_HANDLE)
object (TYPE_HANDLE)
object[][] (TYPE_HANDLE)
RefX1`1<int> (TYPE_HANDLE)
string (TYPE_HANDLE)
string[...,...] (TYPE_HANDLE)
System.Guid (TYPE_HANDLE)
ValX1`1<__Canon> (TYPE_HANDLE)
ValX1`1<__Canon> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 1 Align 1 (VERIFY_TYPE_LAYOUT)
ValX1`1<string> (TYPE_HANDLE)
ValX1`1<string> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 1 Align 1 (VERIFY_TYPE_LAYOUT)
int Test.Main()
Size: 868 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x000A
CountOfUnwindCodes: 4
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x000A FrameOffset 0x0000 NextOffset 0x0 Op 128
UnwindCode[2]: CodeOffset 0x0002 FrameOffset 0x0000 NextOffset 0x0 Op RSI(6)
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0006, Source Types: SourceTypeInvalid
IL Offset: 0x002f, Source Types: SourceTypeInvalid
IL Offset: 0x004a, Source Types: StackEmpty
IL Offset: 0x0054, Source Types: SourceTypeInvalid
IL Offset: 0x005a, Source Types: StackEmpty
IL Offset: 0x006f, Source Types: StackEmpty
IL Offset: 0x0074, Source Types: SourceTypeInvalid
IL Offset: 0x0079, Source Types: SourceTypeInvalid
IL Offset: 0x007f, Source Types: StackEmpty
IL Offset: 0x0094, Source Types: StackEmpty
IL Offset: 0x009c, Source Types: StackEmpty
IL Offset: 0x00a3, Source Types: SourceTypeInvalid
IL Offset: 0x00aa, Source Types: StackEmpty
IL Offset: 0x00c0, Source Types: StackEmpty
IL Offset: 0x00ca, Source Types: SourceTypeInvalid
IL Offset: 0x00f6, Source Types: SourceTypeInvalid
IL Offset: 0x00fd, Source Types: StackEmpty
IL Offset: 0x0113, Source Types: StackEmpty
IL Offset: 0x011e, Source Types: SourceTypeInvalid
IL Offset: 0x0125, Source Types: StackEmpty
IL Offset: 0x013b, Source Types: StackEmpty
IL Offset: 0x0147, Source Types: SourceTypeInvalid
IL Offset: 0x014e, Source Types: StackEmpty
IL Offset: 0x0164, Source Types: StackEmpty
IL Offset: 0x016f, Source Types: SourceTypeInvalid
IL Offset: 0x0176, Source Types: StackEmpty
IL Offset: 0x018c, Source Types: StackEmpty
IL Offset: 0x0193, Source Types: StackEmpty
IL Offset: 0x019d, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
IL Offset: 0x01a0, Source Types: StackEmpty
IL Offset: 0x01aa, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x31
End Offset: 0x41
Loc Type: VLT_REG
Register: RSI
Variable Number: 1
Start Offset: 0x71
End Offset: 0x81
Loc Type: VLT_REG
Register: RSI
Variable Number: 2
Start Offset: 0xBD
End Offset: 0xCD
Loc Type: VLT_REG
Register: RBX
Variable Number: 3
Start Offset: 0x109
End Offset: 0x119
Loc Type: VLT_REG
Register: RBX
Variable Number: 4
Start Offset: 0x16E
End Offset: 0x17E
Loc Type: VLT_REG
Register: RSI
Variable Number: 5
Start Offset: 0x1B6
End Offset: 0x1C6
Loc Type: VLT_REG
Register: RDI
Variable Number: 6
Start Offset: 0x1E9
End Offset: 0x1F9
Loc Type: VLT_REG
Register: RSI
Variable Number: 7
Start Offset: 0x23A
End Offset: 0x24A
Loc Type: VLT_REG
Register: RBX
Variable Number: 8
Start Offset: 0x29E
End Offset: 0x2AE
Loc Type: VLT_REG
Register: RBX
Variable Number: 9
Start Offset: 0x2EF
End Offset: 0x2FF
Loc Type: VLT_REG
Register: RBX
0000: push rdi
UWOP_PUSH_NONVOL RDI(7) 0
0001: push rsi
UWOP_PUSH_NONVOL RSI(6) 0
0002: push rbx
UWOP_PUSH_NONVOL RBX(3) 0
0003: sub rsp, 128
UWOP_ALLOC_SMALL 128 0
000a: xorps xmm4, xmm4
000d: movaps xmmword ptr [rsp + 48], xmm4
0012: movaps xmmword ptr [rsp + 64], xmm4
0017: movaps xmmword ptr [rsp + 80], xmm4
001c: xor eax, eax
001e: mov qword ptr [rsp + 96], rax
0023: call qword ptr [Gen`1<int> (NEW_OBJECT)]
0029: mov rsi, rax
002c: xor ecx, ecx
002e: mov dword ptr [rsi + 8], ecx
0031: mov rcx, qword ptr [int (TYPE_HANDLE)]
0038: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
003e: mov rdx, rax
0041: lea rcx, [rsi + 8]
0045: cmp dword ptr [rcx], ecx
0047: call qword ptr [bool Gen`1<int>.InstVerify(System.Type) (METHOD_ENTRY)]
004d: movzx ecx, al
0050: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
0056: xorps xmm0, xmm0
0059: movsd qword ptr [rsp + 104], xmm0
005f: call qword ptr [Gen`1<double> (NEW_OBJECT)]
0065: mov rsi, rax
0068: mov rcx, qword ptr [rsp + 104]
006d: mov qword ptr [rsi + 8], rcx
0071: mov rcx, qword ptr [double (TYPE_HANDLE)]
0078: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
007e: mov rdx, rax
0081: lea rcx, [rsi + 8]
0085: cmp dword ptr [rcx], ecx
0087: call qword ptr [bool Gen`1<double>.InstVerify(System.Type) (METHOD_ENTRY)]
008d: movzx ecx, al
0090: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
0096: mov rax, qword ptr ["string" (STRING_HANDLE)]
009d: mov rax, qword ptr [rax]
00a0: mov qword ptr [rsp + 96], rax
00a5: call qword ptr [Gen`1<string> (NEW_OBJECT)]
00ab: mov rbx, rax
00ae: lea rdi, [rbx + 8]
00b2: lea rsi, [rsp + 96]
00b7: call qword ptr [BYREF_WRITE_BARRIER (HELPER)]
00bd: mov rcx, qword ptr [string (TYPE_HANDLE)]
00c4: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
00ca: mov rdx, rax
00cd: mov rcx, rbx
00d0: lea r11, [bool Outer+IGen`1<string>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
00d7: call qword ptr [bool Outer+IGen`1<string>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
00dd: movzx ecx, al
00e0: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
00e6: call qword ptr [object (NEW_OBJECT)]
00ec: mov qword ptr [rsp + 88], rax
00f1: call qword ptr [Gen`1<object> (NEW_OBJECT)]
00f7: mov rbx, rax
00fa: lea rdi, [rbx + 8]
00fe: lea rsi, [rsp + 88]
0103: call qword ptr [BYREF_WRITE_BARRIER (HELPER)]
0109: mov rcx, qword ptr [object (TYPE_HANDLE)]
0110: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
0116: mov rdx, rax
0119: mov rcx, rbx
011c: lea r11, [bool Outer+IGen`1<object>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
0123: call qword ptr [bool Outer+IGen`1<object>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
0129: movzx ecx, al
012c: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
0132: xorps xmm0, xmm0
0135: movups xmmword ptr [rsp + 112], xmm0
013a: xorps xmm0, xmm0
013d: movups xmmword ptr [rsp + 72], xmm0
0142: lea rcx, [rsp + 72]
0147: movups xmm0, xmmword ptr [rsp + 112]
014c: movups xmmword ptr [rsp + 32], xmm0
0151: lea rdx, [rsp + 32]
0156: call qword ptr [void Gen`1<System.Guid>..ctor(!0) (METHOD_ENTRY)]
015c: call qword ptr [Gen`1<System.Guid> (NEW_OBJECT)]
0162: mov rsi, rax
0165: movups xmm0, xmmword ptr [rsp + 72]
016a: movups xmmword ptr [rsi + 8], xmm0
016e: mov rcx, qword ptr [System.Guid (TYPE_HANDLE)]
0175: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
017b: mov rdx, rax
017e: mov rcx, rsi
0181: lea r11, [bool Outer+IGen`1<System.Guid>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
0188: call qword ptr [bool Outer+IGen`1<System.Guid>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
018e: movzx ecx, al
0191: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
0197: call qword ptr [RefX1`1<int> (NEW_OBJECT)]
019d: mov rsi, rax
01a0: call qword ptr [Gen`1<RefX1`1<int>> (NEW_OBJECT)]
01a6: mov rdi, rax
01a9: lea rcx, [rdi + 8]
01ad: mov rdx, rsi
01b0: call qword ptr [WRITE_BARRIER (HELPER)]
01b6: mov rcx, qword ptr [RefX1`1<int> (TYPE_HANDLE)]
01bd: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
01c3: mov rdx, rax
01c6: lea rcx, [rdi + 8]
01ca: cmp dword ptr [rcx], ecx
01cc: call qword ptr [bool Gen`1<__Canon>.InstVerify(System.Type) (METHOD_ENTRY)]
01d2: movzx ecx, al
01d5: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
01db: call qword ptr [Gen`1<ValX1`1<string>> (NEW_OBJECT)]
01e1: mov rsi, rax
01e4: xor ecx, ecx
01e6: mov byte ptr [rsi + 8], cl
01e9: mov rcx, qword ptr [ValX1`1<string> (TYPE_HANDLE)]
01f0: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
01f6: mov rdx, rax
01f9: mov rcx, rsi
01fc: lea r11, [bool Outer+IGen`1<ValX1`1<string>>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
0203: call qword ptr [bool Outer+IGen`1<ValX1`1<string>>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
0209: movzx ecx, al
020c: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
0212: mov ecx, 1
0217: call qword ptr [int[] (NEW_ARRAY)]
021d: mov qword ptr [rsp + 64], rax
0222: call qword ptr [Gen`1<int[]> (NEW_OBJECT)]
0228: mov rbx, rax
022b: lea rdi, [rbx + 8]
022f: lea rsi, [rsp + 64]
0234: call qword ptr [BYREF_WRITE_BARRIER (HELPER)]
023a: mov rcx, qword ptr [int[] (TYPE_HANDLE)]
0241: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
0247: mov rdx, rax
024a: mov rcx, rbx
024d: lea r11, [bool Outer+IGen`1<int[]>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
0254: call qword ptr [bool Outer+IGen`1<int[]>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
025a: movzx ecx, al
025d: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
0263: mov rcx, qword ptr [string[...,...] (TYPE_HANDLE)]
026a: mov edx, 2
026f: mov r8d, 1
0275: mov r9d, 1
027b: call qword ptr [NEW_MULTI_DIM_ARR (HELPER)]
0281: mov qword ptr [rsp + 56], rax
0286: call qword ptr [Gen`1<string[...,...]> (NEW_OBJECT)]
028c: mov rbx, rax
028f: lea rdi, [rbx + 8]
0293: lea rsi, [rsp + 56]
0298: call qword ptr [BYREF_WRITE_BARRIER (HELPER)]
029e: mov rcx, qword ptr [string[...,...] (TYPE_HANDLE)]
02a5: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
02ab: mov rdx, rax
02ae: mov rcx, rbx
02b1: lea r11, [bool Outer+IGen`1<string[0...,0...]>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
02b8: call qword ptr [bool Outer+IGen`1<string[0...,0...]>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
02be: movzx ecx, al
02c1: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
02c7: mov ecx, 1
02cc: call qword ptr [object[][] (NEW_ARRAY)]
02d2: mov qword ptr [rsp + 48], rax
02d7: call qword ptr [Gen`1<object[][]> (NEW_OBJECT)]
02dd: mov rbx, rax
02e0: lea rdi, [rbx + 8]
02e4: lea rsi, [rsp + 48]
02e9: call qword ptr [BYREF_WRITE_BARRIER (HELPER)]
02ef: mov rcx, qword ptr [object[][] (TYPE_HANDLE)]
02f6: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
02fc: mov rdx, rax
02ff: mov rcx, rbx
0302: lea r11, [bool Outer+IGen`1<object[][]>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
0309: call qword ptr [bool Outer+IGen`1<object[][]>.InstVerify(System.Type) (VIRTUAL_ENTRY)]
030f: movzx ecx, al
0312: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
0318: call qword ptr [Test (STATIC_BASE_NON_GC)]
031e: cmp byte ptr [rax + 76], 0
0322: je 0x0344
0324: mov rcx, qword ptr ["Test Passed" (STRING_HANDLE)]
032b: mov rcx, qword ptr [rcx]
032e: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
0334: mov eax, 100
0339: add rsp, 128
0340: pop rbx
0341: pop rsi
0342: pop rdi
0343: ret
0344: mov rcx, qword ptr ["Test Failed" (STRING_HANDLE)]
034b: mov rcx, qword ptr [rcx]
034e: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
0354: mov eax, 1
0359: add rsp, 128
0360: pop rbx
0361: pop rsi
0362: pop rdi
0363: ret
_______________________________________________
void Gen`1<__Canon>..ctor(!0)
Handle: 0x0600000A
Rid: 10
Number of RuntimeFunctions: 1
Number of fixups: 1
0 0 !0 Gen`1<__Canon>.Fld1 (VERIFY_FIELD_OFFSET)
void Gen`1<__Canon>..ctor(!0)
Size: 11 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0007, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: R8
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: R8
Variable Number: 4294967293
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RDX
0000: mov rdx, r8
0003: call qword ptr [CHECKED_WRITE_BARRIER (HELPER)]
0009: nop
000a: ret
_______________________________________________
void Gen`1<double>..ctor(!0)
Handle: 0x0600000A
Rid: 10
Number of RuntimeFunctions: 1
Number of fixups: 2
0 0 !0 Gen`1<double>.Fld1 (VERIFY_FIELD_OFFSET)
Gen`1<double> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_Alignment_Native, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 8 (VERIFY_TYPE_LAYOUT)
void Gen`1<double>..ctor(!0)
Size: 5 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0007, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: 17
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG_FP
Register: 17
0000: movsd qword ptr [rcx], xmm1
0004: ret
_______________________________________________
void Gen`1<int>..ctor(!0)
Handle: 0x0600000A
Rid: 10
Number of RuntimeFunctions: 1
Number of fixups: 2
0 0 !0 Gen`1<int>.Fld1 (VERIFY_FIELD_OFFSET)
Gen`1<int> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 4 Align 4 (VERIFY_TYPE_LAYOUT)
void Gen`1<int>..ctor(!0)
Size: 3 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0007, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RDX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RDX
0000: mov dword ptr [rcx], edx
0002: ret
_______________________________________________
void Gen`1<ValX1`1<__Canon>>..ctor(!0)
Handle: 0x0600000A
Rid: 10
Number of RuntimeFunctions: 1
Number of fixups: 3
0 0 !0 Gen`1<ValX1`1<__Canon>>.Fld1 (VERIFY_FIELD_OFFSET)
Gen`1<ValX1`1<__Canon>> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 1 Align 1 (VERIFY_TYPE_LAYOUT)
ValX1`1<__Canon> Flags READYTORUN_LAYOUT_Alignment, READYTORUN_LAYOUT_GCLayout, READYTORUN_LAYOUT_GCLayout_Empty Size 1 Align 1 (VERIFY_TYPE_LAYOUT)
void Gen`1<ValX1`1<__Canon>>..ctor(!0)
Size: 12 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0007, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x5
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x5
End Offset: 0x6
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x5
Loc Type: VLT_REG
Register: R8
Variable Number: 1
Start Offset: 0x5
End Offset: 0xB
Loc Type: VLT_STK
Base Register: 17
Stack Offset: 24
Variable Number: 4294967293
Start Offset: 0x0
End Offset: 0x5
Loc Type: VLT_REG
Register: RDX
0000: mov qword ptr [rsp + 24], r8
0005: mov al, byte ptr [rsp + 24]
0009: mov byte ptr [rcx], al
000b: ret
_______________________________________________
void Outer..ctor()
Handle: 0x06000009
Rid: 9
Number of RuntimeFunctions: 1
void Outer..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefX0..ctor()
Handle: 0x06000001
Rid: 1
Number of RuntimeFunctions: 1
void RefX0..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefX1`1<__Canon>..ctor()
Handle: 0x06000003
Rid: 3
Number of RuntimeFunctions: 1
void RefX1`1<__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefX1`1<int>..ctor()
Handle: 0x06000003
Rid: 3
Number of RuntimeFunctions: 1
void RefX1`1<int>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefX2`2<__Canon,__Canon>..ctor()
Handle: 0x06000005
Rid: 5
Number of RuntimeFunctions: 1
void RefX2`2<__Canon,__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefX3`3<__Canon,__Canon,__Canon>..ctor()
Handle: 0x06000007
Rid: 7
Number of RuntimeFunctions: 1
void RefX3`3<__Canon,__Canon,__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefY0..ctor()
Handle: 0x06000002
Rid: 2
Number of RuntimeFunctions: 1
void RefY0..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefY1`1<__Canon>..ctor()
Handle: 0x06000004
Rid: 4
Number of RuntimeFunctions: 1
void RefY1`1<__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefY2`2<__Canon,__Canon>..ctor()
Handle: 0x06000006
Rid: 6
Number of RuntimeFunctions: 1
void RefY2`2<__Canon,__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefY3`3<__Canon,__Canon,__Canon>..ctor()
Handle: 0x06000008
Rid: 8
Number of RuntimeFunctions: 1
void RefY3`3<__Canon,__Canon,__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void Test..cctor()
Handle: 0x0600000F
Rid: 15
Number of RuntimeFunctions: 1
Number of fixups: 2
0 72 int Test.counter (VERIFY_FIELD_OFFSET)
0 76 bool Test.result (VERIFY_FIELD_OFFSET)
void Test..cctor()
Size: 24 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0004
CountOfUnwindCodes: 1
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0004 FrameOffset 0x0000 NextOffset 0x0 Op 40
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0006, Source Types: StackEmpty
IL Offset: 0x000c, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
0000: sub rsp, 40
UWOP_ALLOC_SMALL 40 0
0004: call qword ptr [Test (STATIC_BASE_NON_GC)]
000a: xor edx, edx
000c: mov dword ptr [rax + 72], edx
000f: mov byte ptr [rax + 76], 1
0013: add rsp, 40
0017: ret
_______________________________________________
void Test..ctor()
Handle: 0x0600000E
Rid: 14
Number of RuntimeFunctions: 1
void Test..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void Test.Eval(bool)
Handle: 0x0600000C
Rid: 12
Number of RuntimeFunctions: 1
Number of fixups: 3
"Test Failed at location: " (STRING_HANDLE)
0 72 int Test.counter (VERIFY_FIELD_OFFSET)
0 76 bool Test.result (VERIFY_FIELD_OFFSET)
void Test.Eval(bool)
Size: 76 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0005
CountOfUnwindCodes: 2
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0005 FrameOffset 0x0000 NextOffset 0x0 Op 32
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x000c, Source Types: StackEmpty
IL Offset: 0x000f, Source Types: StackEmpty
IL Offset: 0x0015, Source Types: StackEmpty
IL Offset: 0x002e, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x7
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x7
End Offset: 0x18
Loc Type: VLT_REG
Register: RSI
0000: push rsi
UWOP_PUSH_NONVOL RSI(6) 0
0001: sub rsp, 32
UWOP_ALLOC_SMALL 32 0
0005: mov esi, ecx
0007: call qword ptr [Test (STATIC_BASE_NON_GC)]
000d: mov rcx, rax
0010: inc dword ptr [rcx + 72]
0013: test sil, sil
0016: jne 0x0045
0018: mov byte ptr [rcx + 76], sil
001c: mov rax, qword ptr ["Test Failed at location: " (STRING_HANDLE)]
0023: mov rsi, qword ptr [rax]
0026: add rcx, 72
002a: call qword ptr [string System.Int32.ToString() (METHOD_ENTRY)]
0030: mov rdx, rax
0033: mov rcx, rsi
0036: call qword ptr [string System.String.Concat(string, string) (METHOD_ENTRY)]
003c: mov rcx, rax
003f: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
0045: nop
0046: add rsp, 32
004a: pop rsi
004b: ret
=========== Eager fixup counts across all methods ===========
=============================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment