protected override void OnTracePoint(LuaTraceLineEventArgs e) { base.OnTracePoint(e); _lastTraceSourceName = e.SourceName; _lastTraceScope = e.ScopeName; _lastTraceLine = e.SourceLine; }
protected override void OnFrameEnter(LuaTraceLineEventArgs e) { base.OnFrameEnter(e); _lastFrameSourceName = e.SourceName; _lastFrameLine = e.SourceLine; _lastFrameScope.Push(e.ScopeName); }
protected override void OnFrameEnter(LuaTraceLineEventArgs e) { _debugger.CurrentLine = e.SourceLine; ScriptService.CurrentScript = _debugger.Script; _debugger.LuaTraceLineEventArgs = e; var bp = _debugger.GetBreakpoints().FirstOrDefault(x => x.Line == e.SourceLine); // TODO: evaluate condition if (bp != null) { _debugger.EncounteredBreak.Fire(bp); } }
private void UpdateStackLine(int iTop, LuaTraceLineEventArgs e) { // 12345678.123 123 Console.CursorLeft = Console.WindowWidth - 16; Console.CursorTop = iTop; if (e == null) Console.Write(new string(' ', 16)); else { string sFileName = Path.GetFileName(e.SourceName); if (sFileName.Length > 12) sFileName = sFileName.Substring(0, 12); else if (sFileName.Length < 12) sFileName = sFileName.PadRight(12); string sLine = e.SourceLine.ToString().PadLeft(4); if (sLine.Length > 4) sLine = sLine.Substring(0, 4); WriteText(ConsoleColor.DarkGray, sFileName); WriteText(ConsoleColor.Gray, sLine); } } // proc UpdateStackLine
private void UpdateStack(LuaTraceLineEventArgs e) { var stack = frames.ToArray(); int iCurrentLeft = Console.CursorLeft; int iCurrentTop = Console.CursorTop; int iStart; int iTop = 0; try { if (stack.Length > 9) iStart = stack.Length - 8; else iStart = 0; for (int i = iStart; i < stack.Length; i++) UpdateStackLine(iTop++, stack[i]); UpdateStackLine(iTop++, e); while (iTop < 9) UpdateStackLine(iTop++, null); } finally { Console.CursorLeft = iCurrentLeft; Console.CursorTop = iCurrentTop; } Thread.Sleep(100); }
protected override void OnTracePoint(LuaTraceLineEventArgs e) { UpdateStack(lastTracePoint = e); base.OnTracePoint(e); }
protected override void OnFrameEnter(LuaTraceLineEventArgs e) { base.OnFrameEnter(e); if (lastTracePoint != null) frames.Push(lastTracePoint); }
} // proc OnFrameEnter protected override void OnTracePoint(LuaTraceLineEventArgs e) { } // proc OnTracePoint
} // proc OnExceptionUnwind protected override void OnFrameEnter(LuaTraceLineEventArgs e) { } // proc OnFrameEnter