blob: c1b293b020ed4be690fda2844ec28a2f4ab2bb7b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System;
namespace ILCompiler.DependencyAnalysis
{
[Flags]
public enum FrameInfoFlags
{
Handler = 0x01,
Filter = 0x02,
HasEHInfo = 0x04,
ReversePInvoke = 0x08,
HasAssociatedData = 0x10,
}
public struct FrameInfo
{
public readonly FrameInfoFlags Flags;
public readonly int StartOffset;
public readonly int EndOffset;
public readonly byte[] BlobData;
public FrameInfo(FrameInfoFlags flags, int startOffset, int endOffset, byte[] blobData)
{
Flags = flags;
StartOffset = startOffset;
EndOffset = endOffset;
BlobData = blobData;
}
}
public struct DebugEHClauseInfo
{
public uint TryOffset;
public uint TryLength;
public uint HandlerOffset;
public uint HandlerLength;
public DebugEHClauseInfo(uint tryOffset, uint tryLength, uint handlerOffset, uint handlerLength)
{
TryOffset = tryOffset;
TryLength = tryLength;
HandlerOffset = handlerOffset;
HandlerLength = handlerLength;
}
}
public interface INodeWithCodeInfo
{
FrameInfo[] FrameInfos
{
get;
}
byte[] GCInfo
{
get;
}
DebugEHClauseInfo[] DebugEHClauseInfos
{
get;
}
ObjectNode.ObjectData EHInfo
{
get;
}
ISymbolNode GetAssociatedDataNode(NodeFactory factory);
}
}
|