[mono-symbolicate] Use SeqPointInfo instead of PInvoking.
authorMarcos Henrich <marcos.henrich@xamarin.com>
Wed, 2 Mar 2016 10:33:55 +0000 (10:33 +0000)
committerMarcos Henrich <marcos.henrich@xamarin.com>
Tue, 22 Mar 2016 14:22:49 +0000 (14:22 +0000)
mcs/tools/mono-symbolicate/LocationProvider.cs
mcs/tools/mono-symbolicate/Makefile
mono/metadata/seq-points-data.h

index cad20ae8e16f6bdb6e073e1a10ef447851605493..0580eeb9615db86aba1c056ff7e1256b528423e6 100644 (file)
@@ -58,16 +58,13 @@ namespace Symbolicate
                                return true;
                        }
 
-                       [DllImport("mono-symbolicate-native.dll")]
-                       private static extern bool mono_seq_point_data_get_il_offset (string path, uint method_token, uint method_index, uint native_offset, out uint il_offset);
-
-                       static MethodInfo methodGetIL;
+                       SeqPointInfo seqPointInfo;
                        private int GetILOffsetFromFile (int methodToken, uint methodIndex, int nativeOffset)
                        {
-                               uint ilOffset;
-                               mono_seq_point_data_get_il_offset (seqPointDataPath, (uint) methodToken, methodIndex, (uint) nativeOffset, out ilOffset);
+                               if (seqPointInfo == null)
+                                       seqPointInfo = SeqPointInfo.Read (seqPointDataPath);
 
-                               return (int) ilOffset;
+                               return seqPointInfo.GetILOffset (methodToken, methodIndex, nativeOffset);
                        }
 
                        private string GetMethodFullName (MethodBase m)
index daa92225a3d6423a9f09a9abc688960765af7bd5..35cdfd88a39e21ee4d503c0316bbc2c31577d1a7 100644 (file)
@@ -11,8 +11,6 @@ LOCAL_MCS_FLAGS = \
        /r:System.Core.dll \
        /r:System.dll
 
-EXTRA_DISTFILES="mono-symbolicate-native.dll"
-
 include ../../build/executable.make
 
 LIB_PATH = $(topdir)/class/lib/$(PROFILE)
@@ -60,12 +58,3 @@ ifeq ($(AOT_SUPPORTED), 1)
        @MONO_DEBUG=gen-compact-seq-points $(MONO) --aot=gen-seq-points-file $(TEST_EXE) > /dev/null
        $(CHECK_DIFF)
 endif
-
-all: mono-symbolicate-native.dll
-
-mono-symbolicate-native.dll:
-       cp ../../../mono/mini/mono-sgen mono-symbolicate-native.dll
-
-clean:
-       rm -rf mono-symbolicate-native.dll
-
index 280a148caac3ccb8004f7fe1863d22a0ff9b2395..3f72f3f338a59069bf0323c4d7f47e035d394e4c 100644 (file)
@@ -111,7 +111,7 @@ mono_seq_point_data_add (SeqPointData *data, guint32 methodToken, guint32 method
 gboolean
 mono_seq_point_data_get (SeqPointData *data, guint32 methodToken, guint32 methodIndex, MonoSeqPointInfo** info);
 
-MONO_API gboolean
+gboolean
 mono_seq_point_data_get_il_offset (char *path, guint32 methodToken, guint32 methodIndex, guint32 native_offset, guint32 *il_offset);
 
 #endif /* __MONO_SEQ_POINTS_DATA_H__ */