Beispiel #1
0
		public static bool TryParse (string line, out StackTraceMetadata metadata)
		{
			metadata = null;

			var match = regex.Match (line);
			if (!match.Success)
				return false;

			string id = match.Groups ["Id"].Value;
			string val = match.Groups ["Value"].Value;

			metadata = new StackTraceMetadata (line, id, val);

			return true;
		}
Beispiel #2
0
        public static StringBuilder Process(StreamReader reader, SymbolManager symbolManager)
        {
            List <StackFrameData>     stackFrames = new List <StackFrameData>();
            List <StackTraceMetadata> metadata    = new List <StackTraceMetadata>();
            StringBuilder             sb          = new StringBuilder();
            bool linesEnded = false;

            for (var line = reader.ReadLine(); line != null; line = reader.ReadLine())
            {
                StackFrameData sfData;
                if (!linesEnded && StackFrameData.TryParse(line, out sfData))
                {
                    stackFrames.Add(sfData);
                    continue;
                }

                if (stackFrames.Count > 0)
                {
                    linesEnded = true;

                    StackTraceMetadata stMetadata;
                    if (StackTraceMetadata.TryParse(line, out stMetadata))
                    {
                        metadata.Add(stMetadata);
                        continue;
                    }

                    DumpStackTrace(symbolManager, sb, stackFrames, metadata);

                    // Clear lists for next stack trace
                    stackFrames.Clear();
                    metadata.Clear();
                }

                linesEnded = false;

                // Append last line
                sb.AppendLine(line);
            }

            if (stackFrames.Count > 0)
            {
                DumpStackTrace(symbolManager, sb, stackFrames, metadata);
            }

            return(sb);
        }
Beispiel #3
0
        public static bool TryParse(string line, out StackTraceMetadata metadata)
        {
            metadata = null;

            var match = regex.Match(line);

            if (!match.Success)
            {
                return(false);
            }

            string id  = match.Groups ["Id"].Value;
            string val = match.Groups ["Value"].Value;

            metadata = new StackTraceMetadata(line, id, val);

            return(true);
        }