SharpGen.Runtime/Diagnostics/ObjectTracker.StackTrace.cs (31 lines of code) (raw):

using System; using System.Diagnostics; namespace SharpGen.Runtime.Diagnostics { public static partial class ObjectTracker { /// <summary> /// Function which provides stack trace for object tracking. /// </summary> public static Func<string> StackTraceProvider { get; set; } = GetStackTrace; /// <summary> /// Gets default stack trace. /// </summary> public static string GetStackTrace() { #if NETSTANDARD1_1 try { throw new GetStackTraceException(); } catch (GetStackTraceException ex) { return ex.StackTrace; } #elif NETSTANDARD1_3 return Environment.StackTrace; #else return new StackTrace(3).ToString(); #endif } #if NETSTANDARD1_1 private sealed class GetStackTraceException : Exception { } #endif } }