COR_IL_MAP Structure

Specifies changes in the relative offset of a function.

Syntax

typedef struct _COR_IL_MAP {
    ULONG32 oldOffset;
    ULONG32 newOffset;
    BOOL    fAccurate;
} COR_IL_MAP;

Members

Member Description
oldOffset The old common intermediate language (CIL) offset relative to the beginning of the function.
newOffset The new CIL offset relative to the beginning of the function.
fAccurate true if the mapping is known to be accurate; otherwise, false.

Remarks

The format of the map is as follows: The debugger will assume that oldOffset refers to an CIL offset within the original, unmodified CIL code. The newOffset parameter refers to the corresponding CIL offset within the new, instrumented code.

For stepping to work properly, the following requirements should be met:

  • The map should be sorted in ascending order.

  • Instrumented CIL code should not be reordered.

  • Original CIL code should not be removed.

  • The map should include entries to map all the sequence points from the program database (PDB) file.

The map does not interpolate missing entries. The following example shows a map and its results.

Map:

  • 0 old offset, 0 new offset

  • 5 old offset, 10 new offset

  • 9 old offset, 20 new offset

Results:

  • An old offset of 0, 1, 2, 3, or 4 will be mapped to a new offset of 0.

  • An old offset of 5, 6, 7, or 8 will be mapped to new offset 10.

  • An old offset of 9 or higher will be mapped to new offset 20.

  • A new offset of 0, 1, 2, 3, 4, 5, 6, 7, 8, or 9 will be mapped to old offset 0.

  • A new offset of 10, 11, 12, 13, 14, 15, 16, 17, 18, or 19 will be mapped to old offset 5.

  • A new offset of 20 or higher will be mapped to old offset 9.

Requirements

Platforms: See System Requirements.

Header: CorDebug.idl, CorProf.idl

Library: CorGuids.lib

.NET Framework Versions: Available since 1.0

See also