public DkmEvaluationResult TryEvaluate(string expr) { using (var cppExpr = DkmLanguageExpression.Create(CppLanguage, DkmEvaluationFlags.NoSideEffects, expr, null)) { DkmEvaluationResult cppEvalResult = null; var cppWorkList = DkmWorkList.Create(null); _cppInspectionContext.EvaluateExpression(cppWorkList, cppExpr, _nativeFrame, (result) => { cppEvalResult = result.ResultObject; }); cppWorkList.Execute(); return(cppEvalResult); } }
private bool EvaluateExpression(string expression, Action <DkmSuccessEvaluationResult> onSuccess) { var workList = DkmWorkList.Create(null); var success = false; _inspectionContext.EvaluateExpression(workList, CppExpression(expression), _frame, res => { var resObj = res.ResultObject; var result = resObj as DkmSuccessEvaluationResult; if (result != null) { success = true; onSuccess(result); } resObj.Close(); }); workList.Execute(); return(success); }