X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.Diagnostics%2FStackFrame.cs;h=b6aa9d2ed3ec6e8ce49863ad12ee196739e5d8de;hb=032f313d5f3b99954cabb3e152b3c8d4424d5a2b;hp=38796071e9e90aaabb7bb192b8e1c160120f2e82;hpb=390bd8554a6f0ce7e6a70fae49af67bbb67420d4;p=mono.git diff --git a/mcs/class/corlib/System.Diagnostics/StackFrame.cs b/mcs/class/corlib/System.Diagnostics/StackFrame.cs index 38796071e9e..b6aa9d2ed3e 100644 --- a/mcs/class/corlib/System.Diagnostics/StackFrame.cs +++ b/mcs/class/corlib/System.Diagnostics/StackFrame.cs @@ -41,6 +41,7 @@ namespace System.Diagnostics { [Serializable] [ComVisible (true)] [MonoTODO ("Serialized objects are not compatible with MS.NET")] + [StructLayout (LayoutKind.Sequential)] public class StackFrame { public const int OFFSET_UNKNOWN = -1; @@ -48,6 +49,7 @@ namespace System.Diagnostics { #region Keep in sync with object-internals.h private int ilOffset = OFFSET_UNKNOWN; private int nativeOffset = OFFSET_UNKNOWN; + private long methodAddress; private MethodBase methodBase; private string fileName; private int lineNumber; @@ -140,26 +142,12 @@ namespace System.Diagnostics { string filename = ""; if (fileName == null) return filename; -#if !NET_2_1 || MONOTOUCH try { filename = GetFileName (); } catch (SecurityException) { // CAS check failure } -#else - // Silverlight always return but that's not very useful for debugging - // OTOH we do not want to share any details about the original file system (even if they - // are likely available in the debugging symbols files) from the browser's plugin (but - // compiling stuff from smcs is fine since it's outside the sandbox) - try { - if (SecurityManager.SecurityEnabled) - filename = Path.GetFileName (fileName); - } - catch (ArgumentException) { - // e.g. invalid chars in filename - } -#endif return filename; } @@ -178,6 +166,11 @@ namespace System.Diagnostics { return nativeOffset; } + internal long GetMethodAddress () + { + return methodAddress; + } + internal string GetInternalMethodName () { return internalMethodName;