public void GetChildren(DkmVisualizedExpression visualizedExpression, int initialRequestSize, DkmInspectionContext inspectionContext, out DkmChildVisualizedExpression[] initialChildren, out DkmEvaluationResultEnumContext enumContext) { var rawResultHolder = visualizedExpression.GetDataItem <RawEvaluationResultHolder>(); if (rawResultHolder == null) { Debug.Fail("PythonViewNativeVisualizer.GetChildren passed a visualized expression that does not have an associated RawEvaluationResultHolder."); throw new NotSupportedException(); } var rawResult = rawResultHolder.RawResult; DkmEvaluationResult[] rawInitialChildren; DkmEvaluationResultEnumContext rawEnumContext; visualizedExpression.GetChildrenCallback(rawResult, 0, inspectionContext, out rawInitialChildren, out rawEnumContext); initialChildren = new DkmChildVisualizedExpression[0]; enumContext = rawEnumContext; if (DebuggerOptions.ShowPythonViewNodes) { var pythonView = GetPythonView(visualizedExpression, (uint)rawEnumContext.Count); if (pythonView != null) { enumContext = DkmEvaluationResultEnumContext.Create( rawEnumContext.Count + 1, rawEnumContext.StackFrame, rawEnumContext.InspectionContext, new RawEnumContextData { RawContext = rawEnumContext, PythonView = pythonView }); } } }
public void GetChildren(DkmVisualizedExpression visualizedExpression, int initialRequestSize, DkmInspectionContext inspectionContext, out DkmChildVisualizedExpression[] initialChildren, out DkmEvaluationResultEnumContext enumContext) { DkmEvaluationResult[] initialChildrenAsResult; visualizedExpression.GetChildrenCallback(EvaluationResult, 0, inspectionContext, out initialChildrenAsResult, out enumContext); initialChildren = Convert(visualizedExpression, initialChildrenAsResult); enumContext.SetDataItem(DkmDataCreationDisposition.CreateAlways, this); }
private void CreateDefaultEnumContext() { if (defEnumContext_ != null) { return; } string name = null; string fullName = null; Utility.GetExpressionName(expression_, out name, out fullName); DkmEvaluationResult defaultEvaluationResult = CppExpressionEvaluator.Evaluate(expression_, fullName + ",!"); DkmEvaluationResult[] defInitialChildren; expression_.GetChildrenCallback(defaultEvaluationResult, 0, expression_.InspectionContext, out defInitialChildren, out defEnumContext_); foreach (DkmEvaluationResult evalResult in defInitialChildren) { evalResult.Close(); } }
public void GetChildren(DkmVisualizedExpression visualizedExpression, int initialRequestSize, DkmInspectionContext inspectionContext, out DkmChildVisualizedExpression[] initialChildren, out DkmEvaluationResultEnumContext enumContext) { var rawResultHolder = visualizedExpression.GetDataItem<RawEvaluationResultHolder>(); if (rawResultHolder == null) { Debug.Fail("PythonViewNativeVisualizer.GetChildren passed a visualized expression that does not have an associated RawEvaluationResultHolder."); throw new NotSupportedException(); } var rawResult = rawResultHolder.RawResult; DkmEvaluationResult[] rawInitialChildren; DkmEvaluationResultEnumContext rawEnumContext; visualizedExpression.GetChildrenCallback(rawResult, 0, inspectionContext, out rawInitialChildren, out rawEnumContext); initialChildren = new DkmChildVisualizedExpression[0]; enumContext = rawEnumContext; if (DebuggerOptions.ShowPythonViewNodes) { var pythonViewEvalResult = GetPythonView(visualizedExpression); var pythonView = DkmChildVisualizedExpression.Create( visualizedExpression.InspectionContext, visualizedExpression.VisualizerId, visualizedExpression.SourceId, visualizedExpression.StackFrame, visualizedExpression.ValueHome, pythonViewEvalResult, visualizedExpression, (uint)rawEnumContext.Count, null); if (pythonView != null) { enumContext = DkmEvaluationResultEnumContext.Create( rawEnumContext.Count + 1, rawEnumContext.StackFrame, rawEnumContext.InspectionContext, new RawEnumContextData { RawContext = rawEnumContext, PythonView = pythonView }); } } }