Ejemplo n.º 1
0
        async Task GetEvaluateOnCallFrame(MessageId msg_id, int scope_id, string expression, CancellationToken token)
        {
            try {
                var context = GetContext(msg_id);
                if (context.CallStack == null)
                {
                    return;
                }

                var varValue = await TryGetVariableValue(msg_id, scope_id, expression, false, token);

                if (varValue != null)
                {
                    varValue ["value"] ["description"] = varValue ["value"] ["className"];
                    SendResponse(msg_id, Result.OkFromObject(new {
                        result = varValue ["value"]
                    }), token);
                    return;
                }

                string retValue = await EvaluateExpression.CompileAndRunTheExpression(this, msg_id, scope_id, expression, token);

                SendResponse(msg_id, Result.OkFromObject(new {
                    result = new {
                        value = retValue
                    }
                }), token);
            } catch (Exception e) {
                logger.LogTrace(e.Message, expression);
                SendResponse(msg_id, Result.OkFromObject(new {}), token);
            }
        }
Ejemplo n.º 2
0
        async Task <bool> OnEvaluateOnCallFrame(MessageId msg_id, int scope_id, string expression, CancellationToken token)
        {
            try {
                var context = GetContext(msg_id);
                if (context.CallStack == null)
                {
                    return(false);
                }

                var varValue = await TryGetVariableValue(msg_id, scope_id, expression, false, token);

                if (varValue != null)
                {
                    SendResponse(msg_id, Result.OkFromObject(new {
                        result = varValue ["value"]
                    }), token);
                    return(true);
                }

                string retValue = await EvaluateExpression.CompileAndRunTheExpression(this, msg_id, scope_id, expression, token);

                SendResponse(msg_id, Result.OkFromObject(new {
                    result = new {
                        value = retValue
                    }
                }), token);
                return(true);
            } catch (Exception e) {
                logger.LogDebug(e, $"Error in EvaluateOnCallFrame for expression '{expression}.");
            }
            return(false);
        }