The CILDB header is immediately followed by various tables and heaps, in the following order:
-
SymConstant
-
SymMethod
-
SymScopes
-
SymVariable
-
SymUsing
-
SymSequencePoint
-
SymDocument
-
SymMisc
-
SymString
Some of the tables contain CIL offsets. These offsets are in bytes, and the offset of the first instruction is zero. The offsets do not necessarily match the beginning of a CIL instruction. For example, offsets denoting the end of a range of bytes often refer to the last byte of an instruction. Lengths are also in bytes.
The rows in each of the tables 3–7 above that belong to the same method must be contiguous within their parent table.