public void OnEvaluateFinished(UInt32 seq, BkEvaluateResponse msg) { if (PendingEvalRequests.TryGetValue(seq, out EvalRequestHandlerDelegate handler)) { PendingEvalRequests.Remove(seq); if (msg.ErrorMessage.Length > 0) { handler(seq, StatusCode.EvalFailed, msg); } else { handler(seq, StatusCode.Success, msg); } } else { DAP.LogError($"Response received for evaluate request {seq} that is not pending?"); } }
private void ReceivedEvaluateResponse(DAPRequest request, DAPEvaulateRequest req, ThreadState state, BkEvaluateResponse response) { DAPEvaluateResponse evalResponse = new DAPEvaluateResponse { result = "", namedVariables = 0, indexedVariables = 0, variablesReference = 0, }; if (response.Result == null) { evalResponse.result = "(None)"; } else { evalResponse.result = DbgValueToString(response.Result); if (response.Result.Variables != null) { var varsRef = BackendVariableReference.FromDbg(state.Context, response.Result.Variables); var varsIdx = NextVariableReference++; VariableRefs.Add(varsIdx, varsRef); evalResponse.variablesReference = MakeVariableRef(varsIdx); } } DAP.Stream.SendReply(request, evalResponse); }