internal static NativeToILMap FromEvent(MethodILToNativeMapTraceData ev) { List <(uint rva, int ilOffset)> pairs = new List <(uint rva, int ilOffset)>(ev.CountOfMapEntries); for (int i = 0; i < ev.CountOfMapEntries; i++) { pairs.Add(((uint)ev.NativeOffset(i), ev.ILOffset(i))); } pairs.RemoveAll(p => p.ilOffset < 0); pairs.Sort((p1, p2) => p1.rva.CompareTo(p2.rva)); return(new NativeToILMap(pairs.Select(p => p.rva).ToArray(), pairs.Select(p => p.ilOffset).ToArray())); }
private static KeyValueMap <uint, IPMapping> CreateNativeToILMap(MethodDesc method, MethodILToNativeMapTraceData ev) { List <(uint rva, int ilOffset)> pairs = new List <(uint rva, int ilOffset)>(ev.CountOfMapEntries); for (int i = 0; i < ev.CountOfMapEntries; i++) { pairs.Add(((uint)ev.NativeOffset(i), ev.ILOffset(i))); } pairs.RemoveAll(p => p.ilOffset < 0); pairs.Sort((p1, p2) => p1.rva.CompareTo(p2.rva)); return(new(pairs.Select(p => p.rva).ToArray(), pairs.Select(p => new IPMapping(p.ilOffset, null, method)).ToArray())); }