public void ProcessBacktrace() { Console.WriteLine(@"ProcessBacktrace"); var stack = new List <BacktraceModel>(); while (true) { Scanner.yylex(); var trace = ((Scanner)Scanner).yytext; Scanner.yylex(); Scanner.yylex(); var file = ((Scanner)Scanner).yytext; if (string.IsNullOrWhiteSpace(trace) && string.IsNullOrWhiteSpace(file)) { break; } stack.Add(BuildBacktraceModel(trace, file)); Scanner.yylex(); if (trace.StartsWith("#0")) { break; } } BacktraceProcessed?.Invoke(stack); }
public void ProcessBacktraceLine() { Console.WriteLine(@"ProcessBacktraceLine"); var tc = ((TelnetScanner)Scanner); var trace = tc.GetToken(3); var file = tc.GetToken(1); var model = BuildBacktraceModel(trace, file); _stack.Add(model); if (trace.StartsWith("#0")) { BacktraceProcessed?.Invoke(_stack.ToList()); _stack.Clear(); } }