async Task <bool> Step(MessageId msg_id, StepKind kind, CancellationToken token) { var context = GetContext(msg_id); if (context.CallStack == null) { return(false); } if (context.CallStack.Count <= 1 && kind == StepKind.Out) { return(false); } var res = await SendMonoCommand(msg_id, MonoCommands.StartSingleStepping(kind), token); var ret_code = res.Value? ["result"]? ["value"]?.Value <int> (); if (ret_code.HasValue && ret_code.Value == 0) { context.CallStack = null; await SendCommand(msg_id, "Debugger.stepOut", new JObject(), token); return(false); } SendResponse(msg_id, Result.Ok(new JObject()), token); context.CallStack = null; await SendCommand(msg_id, "Debugger.resume", new JObject(), token); return(true); }
async Task Step(MessageId msg_id, StepKind kind, CancellationToken token) { var res = await SendMonoCommand(msg_id, MonoCommands.StartSingleStepping(kind), token); SendResponse(msg_id, Result.Ok(new JObject()), token); this.current_callstack = null; await SendCommand(msg_id, "Debugger.resume", new JObject(), token); }
async Task <bool> Step(MessageId msg_id, StepKind kind, CancellationToken token) { var context = GetContext(msg_id); if (context.CallStack == null) { return(false); } var res = await SendMonoCommand(msg_id, MonoCommands.StartSingleStepping(kind), token); SendResponse(msg_id, Result.Ok(new JObject()), token); context.CallStack = null; await SendCommand(msg_id, "Debugger.resume", new JObject(), token); return(true); }