コード例 #1
0
ファイル: NativeToILMap.cs プロジェクト: PRIMETSS/runtime
        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()));
        }
コード例 #2
0
        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()));
        }