protected override void Process(string[] args) { if (args.Length < 2) { Console.Out.WriteLine("Argument <file name> is missing"); } else if (args.Length < 3) { Console.Out.WriteLine("Argument <line> is missing"); } else { try { LuaDebugBreakpoint breapoint = App.Debugger.AddBreakpoint(args[1], Int32.Parse(args[2])); Console.Out.WriteLine(String.Format("Added breakpoint at {0}:{1}", breapoint.File.FileName, breapoint.Line)); } catch (FormatException ex) { Console.Out.WriteLine("Argument 2: FormatException"); Console.Out.WriteLine(ex.Message); } } }
/// <summary> /// Constructor. /// </summary> /// <param name="luaDebug">Lua debug structure.</param> /// <param name="fileName">Filename</param> /// <param name="line">Line number</param> /// <param name="action">Action</param> /// <param name="breakpoint">Brewakpoint</param> public StopingEventArgs(LuaDebug luaDebug, string fileName, int line, DebuggerActions action, LuaDebugBreakpoint breakpoint) { LuaDebug = luaDebug; FileName = fileName; Line = line; Action = action; Breakpoint = breakpoint; }
/// <summary> /// Stops execution. /// </summary> /// <param name="luaDebug">LuaDebug from debug hook.</param> /// <param name="action">Current Debugger Action.</param> /// <param name="breakpoint">Brekpoint. Can be null.</param> /// <remarks> /// The WaitingForAction event is called as long as State == Stoped. /// </remarks> private void StopExecution(LuaDebug luaDebug, DebuggerActions action, LuaDebugBreakpoint breakpoint) { m_State = LuaDebuggerState.Stoped; try { OnStopping(new StopingEventArgs( luaDebug, luaDebug.shortsrc, luaDebug.eventCode == EventCodes.LUA_HOOKCALL ? luaDebug.linedefined : luaDebug.currentline, action, breakpoint)); do { OnWaitingForAction(new EventArgs()); } while (m_State == LuaDebuggerState.Stoped); } finally { m_State = LuaDebuggerState.Running; } }