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);
        }
示例#3
0
            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);
                }
            }
示例#4
0
文件: Program.cs 项目: edisonh/neolua
      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
示例#5
0
            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);
            }
示例#6
0
 protected override void OnTracePoint(LuaTraceLineEventArgs e)
 {
     UpdateStack(lastTracePoint = e);
     base.OnTracePoint(e);
 }
示例#7
0
 protected override void OnFrameEnter(LuaTraceLineEventArgs e)
 {
     base.OnFrameEnter(e);
     if (lastTracePoint != null)
       frames.Push(lastTracePoint);
 }
示例#8
0
            }             // proc OnFrameEnter

            protected override void OnTracePoint(LuaTraceLineEventArgs e)
            {
            }             // proc OnTracePoint
示例#9
0
            }             // proc OnExceptionUnwind

            protected override void OnFrameEnter(LuaTraceLineEventArgs e)
            {
            }             // proc OnFrameEnter