/// <summary> /// Parses and deminifies a string containing a minified stack trace. /// </summary> public DeminifyStackTraceResult DeminifyStackTrace(string stackTraceString) { DeminifyStackTraceResult result = new DeminifyStackTraceResult(); result.MinifiedStackFrames = _stackTraceParser.ParseStackTrace(stackTraceString); result.DeminifiedStackFrameResults = new List <StackFrameDeminificationResult>(); foreach (StackFrame minifiedStackFrame in result.MinifiedStackFrames) { result.DeminifiedStackFrameResults.Add(_stackFrameDeminifier.DeminifyStackFrame(minifiedStackFrame)); } return(result); }
/// <summary> /// Parses and deminifies a string containing a minified stack trace. /// </summary> public DeminifyStackTraceResult DeminifyStackTrace(string stackTraceString) { DeminifyStackTraceResult result = new DeminifyStackTraceResult(); result.MinifiedStackFrames = _stackTraceParser.ParseStackTrace(stackTraceString, out string message); result.Message = message; result.DeminifiedStackFrameResults = new List <StackFrameDeminificationResult>(); // Deminify frames in reverse order so we can pass the symbol name from caller // (i.e. the function name) into the next level's deminification. string callerSymbolName = null; for (int i = result.MinifiedStackFrames.Count - 1; i >= 0; i--) { var frame = _stackFrameDeminifier.DeminifyStackFrame(result.MinifiedStackFrames[i], callerSymbolName); callerSymbolName = frame?.DeminifiedSymbolName; result.DeminifiedStackFrameResults.Insert(0, frame); } return(result); }