private DkmSuccessEvaluationResult( DkmInspectionContext inspectionContext, DkmStackWalkFrame stackFrame, string name, string fullName, DkmEvaluationResultFlags flags, string value, string editableValue, string type, DkmEvaluationResultCategory category, DkmEvaluationResultAccessType access, DkmEvaluationResultStorageType storageType, DkmEvaluationResultTypeModifierFlags typeModifierFlags, DkmDataAddress address, ReadOnlyCollection <DkmCustomUIVisualizerInfo> customUIVisualizers, ReadOnlyCollection <DkmModuleInstance> externalModules, DkmDataItem dataItem) : base(inspectionContext, stackFrame, name, fullName, flags, type, dataItem) { this.Value = value; this.EditableValue = editableValue; this.Category = category; this.Access = access; this.StorageType = storageType; this.TypeModifierFlags = typeModifierFlags; this.CustomUIVisualizers = customUIVisualizers; }
private DkmSuccessEvaluationResult( DkmInspectionContext inspectionContext, DkmStackWalkFrame stackFrame, string name, string fullName, DkmEvaluationResultFlags flags, string value, string editableValue, string type, DkmEvaluationResultCategory category, DkmEvaluationResultAccessType access, DkmEvaluationResultStorageType storageType, DkmEvaluationResultTypeModifierFlags typeModifierFlags, DkmDataAddress address, ReadOnlyCollection<DkmCustomUIVisualizerInfo> customUIVisualizers, ReadOnlyCollection<DkmModuleInstance> externalModules, DkmDataItem dataItem) : base(inspectionContext, stackFrame, name, fullName, flags, type, dataItem) { this.Value = value; this.EditableValue = editableValue; this.Category = category; this.Access = access; this.StorageType = storageType; this.TypeModifierFlags = typeModifierFlags; this.CustomUIVisualizers = customUIVisualizers; }
public static DkmEvaluationResultEnumContext Create(int Count, DkmStackWalkFrame StackFrame, DkmInspectionContext InspectionContext, DkmDataItem DataItem) { var enumContext = new DkmEvaluationResultEnumContext(Count, InspectionContext); if (DataItem != null) { enumContext.SetDataItem(DkmDataCreationDisposition.CreateNew, DataItem); } return enumContext; }
private DkmFailedEvaluationResult( DkmInspectionContext inspectionContext, DkmStackWalkFrame stackFrame, string name, string fullName, string errorMessage, DkmEvaluationResultFlags flags, string type, DkmDataItem dataItem) : base(inspectionContext, stackFrame, name, fullName, flags, type, dataItem) { this.ErrorMessage = errorMessage; }
private DkmIntermediateEvaluationResult( DkmInspectionContext inspectionContext, DkmStackWalkFrame stackFrame, string name, string fullName, string expression, DkmLanguage intermediateLanguage, DkmRuntimeInstance targetRuntime, DkmDataItem dataItem) : base(inspectionContext, stackFrame, name, fullName, DkmEvaluationResultFlags.None, null, dataItem) { this.Expression = expression; this.IntermediateLanguage = intermediateLanguage; this.TargetRuntime = targetRuntime; }
public static DkmEvaluationResultEnumContext Create( int Count, DkmStackWalkFrame StackFrame, DkmInspectionContext InspectionContext, DkmDataItem DataItem ) { var enumContext = new DkmEvaluationResultEnumContext(Count, InspectionContext); if (DataItem != null) { enumContext.SetDataItem(DkmDataCreationDisposition.CreateNew, DataItem); } return(enumContext); }
public static DkmFailedEvaluationResult Create(DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, string ErrorMessage, DkmEvaluationResultFlags Flags, string Type, DkmDataItem DataItem) { DkmFailedEvaluationResult result = new DkmFailedEvaluationResult { InspectionContext = InspectionContext, Name = Name, FullName = FullName, ErrorMessage = ErrorMessage, Flags = Flags, Type = Type }; if (DataItem != null) { result.SetDataItem(DkmDataCreationDisposition.CreateNew, DataItem); } return result; }
public static DkmFailedEvaluationResult Create( DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, string ErrorMessage, DkmEvaluationResultFlags Flags, string Type, DkmDataItem DataItem) { return new DkmFailedEvaluationResult( InspectionContext, StackFrame, Name, FullName, ErrorMessage, Flags, Type, DataItem); }
public static DkmFailedEvaluationResult Create( DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, string ErrorMessage, DkmEvaluationResultFlags Flags, string Type, DkmDataItem DataItem) { return(new DkmFailedEvaluationResult( InspectionContext, StackFrame, Name, FullName, ErrorMessage, Flags, Type, DataItem)); }
public static DkmIntermediateEvaluationResult Create( DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, string Expression, DkmLanguage IntermediateLanguage, DkmRuntimeInstance TargetRuntime, DkmDataItem DataItem) { return(new DkmIntermediateEvaluationResult( InspectionContext, StackFrame, Name, FullName, Expression, IntermediateLanguage, TargetRuntime, DataItem)); }
public static DkmIntermediateEvaluationResult Create( DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, string Expression, DkmLanguage IntermediateLanguage, DkmRuntimeInstance TargetRuntime, DkmDataItem DataItem) { return new DkmIntermediateEvaluationResult( InspectionContext, StackFrame, Name, FullName, Expression, IntermediateLanguage, TargetRuntime, DataItem); }
internal DkmEvaluationResult( DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, DkmEvaluationResultFlags Flags, string Type, DkmDataItem DataItem) { this.InspectionContext = InspectionContext; this.StackFrame = StackFrame; this.Name = Name; this.FullName = FullName; this.Flags = Flags; this.Type = Type; if (DataItem != null) { this.SetDataItem(DkmDataCreationDisposition.CreateNew, DataItem); } }
public static DkmSuccessEvaluationResult Create(DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, DkmEvaluationResultFlags Flags, string Value, string EditableValue, string Type, DkmEvaluationResultCategory Category, DkmEvaluationResultAccessType Access, DkmEvaluationResultStorageType StorageType, DkmEvaluationResultTypeModifierFlags TypeModifierFlags, DkmDataAddress Address, ReadOnlyCollection<DkmCustomUIVisualizerInfo> CustomUIVisualizers, ReadOnlyCollection<DkmModuleInstance> ExternalModules, DkmDataItem DataItem) { DkmSuccessEvaluationResult result = new DkmSuccessEvaluationResult { InspectionContext = InspectionContext, Name = Name, FullName = FullName, Flags = Flags, Value = Value, Type = Type, Category = Category, EditableValue = EditableValue, CustomUIVisualizers = CustomUIVisualizers }; if (DataItem != null) { result.SetDataItem(DkmDataCreationDisposition.CreateNew, DataItem); } return result; }
public static DkmSuccessEvaluationResult Create( DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, DkmEvaluationResultFlags Flags, string Value, string EditableValue, string Type, DkmEvaluationResultCategory Category, DkmEvaluationResultAccessType Access, DkmEvaluationResultStorageType StorageType, DkmEvaluationResultTypeModifierFlags TypeModifierFlags, DkmDataAddress Address, ReadOnlyCollection <DkmCustomUIVisualizerInfo> CustomUIVisualizers, ReadOnlyCollection <DkmModuleInstance> ExternalModules, DkmDataItem DataItem ) { return(new DkmSuccessEvaluationResult( InspectionContext, StackFrame, Name, FullName, Flags, Value, EditableValue, Type, Category, Access, StorageType, TypeModifierFlags, Address, CustomUIVisualizers, ExternalModules, DataItem )); }
public static DkmSuccessEvaluationResult Create( DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, DkmEvaluationResultFlags Flags, string Value, string EditableValue, string Type, DkmEvaluationResultCategory Category, DkmEvaluationResultAccessType Access, DkmEvaluationResultStorageType StorageType, DkmEvaluationResultTypeModifierFlags TypeModifierFlags, DkmDataAddress Address, ReadOnlyCollection<DkmCustomUIVisualizerInfo> CustomUIVisualizers, ReadOnlyCollection<DkmModuleInstance> ExternalModules, DkmDataItem DataItem) { return new DkmSuccessEvaluationResult( InspectionContext, StackFrame, Name, FullName, Flags, Value, EditableValue, Type, Category, Access, StorageType, TypeModifierFlags, Address, CustomUIVisualizers, ExternalModules, DataItem); }
public static DkmFailedEvaluationResult Create(DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, string ErrorMessage, DkmEvaluationResultFlags Flags, string Type, DkmDataItem DataItem) { DkmFailedEvaluationResult result = new DkmFailedEvaluationResult { InspectionContext = InspectionContext, Name = Name, FullName = FullName, ErrorMessage = ErrorMessage, Flags = Flags, Type = Type }; if (DataItem != null) { result.SetDataItem(DkmDataCreationDisposition.CreateNew, DataItem); } return(result); }
public static DkmIntermediateEvaluationResult Create(DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, string Expression, DkmLanguage IntermediateLanguage, DkmRuntimeInstance TargetRuntime, DkmDataItem DataItem) { DkmIntermediateEvaluationResult result = new DkmIntermediateEvaluationResult { InspectionContext = InspectionContext, Name = Name, FullName = FullName, Expression = Expression, IntermediateLanguage = IntermediateLanguage, TargetRuntime = TargetRuntime }; if (DataItem != null) { result.SetDataItem(DkmDataCreationDisposition.CreateNew, DataItem); } return(result); }
/// <summary> /// Returns child elements of previous evaluation. /// </summary> public void GetItems(DkmVisualizedExpression visualizedExpression, DkmEvaluationResultEnumContext enumContext, int startIndex, int count, out DkmChildVisualizedExpression[] items) { // Check if we want to use passthrough visualizer PassThroughVisualizer passThroughVisualizer = enumContext.GetDataItem <PassThroughVisualizer>(); if (passThroughVisualizer != null) { passThroughVisualizer.GetItems(visualizedExpression, enumContext, startIndex, count, out items); return; } // Execute our regular visualizer VSCustomVisualizerEvaluator evaluator = visualizedExpression.GetDataItem <VSCustomVisualizerEvaluator>(); IResultVisualizer[] itemsAsResults = evaluator.ResultVisualizer.Children.Skip(startIndex).Take(count).ToArray(); items = new DkmChildVisualizedExpression[itemsAsResults.Length]; for (int i = 0; i < items.Length; i++) { IResultVisualizer item = itemsAsResults[i]; DkmEvaluationResultCategory category; switch (item.DataType) { case CompletionDataType.Class: category = DkmEvaluationResultCategory.Class; break; case CompletionDataType.Property: case CompletionDataType.StaticProperty: category = DkmEvaluationResultCategory.Property; break; case CompletionDataType.Event: category = DkmEvaluationResultCategory.Event; break; case CompletionDataType.Method: category = DkmEvaluationResultCategory.Method; break; case CompletionDataType.Enum: case CompletionDataType.EnumValue: case CompletionDataType.Keyword: case CompletionDataType.Namespace: case CompletionDataType.StaticClass: case CompletionDataType.StaticEvent: case CompletionDataType.StaticMethod: case CompletionDataType.StaticVariable: case CompletionDataType.Unknown: case CompletionDataType.Variable: default: category = DkmEvaluationResultCategory.Data; break; } DkmExpressionValueHome valueHome = visualizedExpression.ValueHome; ulong address = 0; string fullName = string.Empty; string typeName = null; try { if (item.Value is Variable variable) { address = variable.GetPointerAddress(); typeName = variable.GetCodeType().Name; fullName = $"*(({typeName}*)0x{address:X})"; valueHome = DkmPointerValueHome.Create(address); } } catch { } DkmEvaluationResult result; DkmDataItem dataItem = null; if (item.ShouldForceDefaultVisualizer && !string.IsNullOrEmpty(fullName)) { using (DkmLanguageExpression languageExpression = DkmLanguageExpression.Create(visualizedExpression.InspectionContext.Language, DkmEvaluationFlags.TreatAsExpression, fullName, null)) { visualizedExpression.EvaluateExpressionCallback(visualizedExpression.InspectionContext, languageExpression, visualizedExpression.StackFrame, out result); } if (result is DkmSuccessEvaluationResult successResult) { dataItem = new PassThroughVisualizer(successResult); result = DkmSuccessEvaluationResult.Create( successResult.InspectionContext, successResult.StackFrame, item.Name, // Name - Left column successResult.FullName, successResult.Flags, successResult.Value, // Value - Middle column successResult.EditableValue, successResult.Type, // Type - Right column category, successResult.Access, successResult.StorageType, successResult.TypeModifierFlags, successResult.Address, successResult.CustomUIVisualizers, successResult.ExternalModules, successResult.RefreshButtonText, dataItem); } } else { result = DkmSuccessEvaluationResult.Create( visualizedExpression.InspectionContext, visualizedExpression.StackFrame, item.Name, // Name - Left column fullName, // FullName - What is being copied when "Add to watch" DkmEvaluationResultFlags.ReadOnly | (item.IsExpandable ? DkmEvaluationResultFlags.Expandable : DkmEvaluationResultFlags.None), item.ValueString, // Value - Middle column "", item.Type ?? "", // Type - Right column category, DkmEvaluationResultAccessType.None, DkmEvaluationResultStorageType.None, DkmEvaluationResultTypeModifierFlags.None, null, VSUIVisualizerService.GetUIVisualizers(item), null, null); dataItem = new VSCustomVisualizerEvaluator(result, item); } items[i] = DkmChildVisualizedExpression.Create( visualizedExpression.InspectionContext, visualizedExpression.VisualizerId, visualizedExpression.SourceId, visualizedExpression.StackFrame, valueHome, result, visualizedExpression, (uint)(startIndex + i), dataItem); } }
public static DkmSuccessEvaluationResult EvaluateSuccess(DkmVisualizedExpression expr, DkmEvaluationFlags flags, string text, DkmDataItem data) { DkmEvaluationResult result = Evaluate(expr, flags, text, data); if (result.TagValue != DkmEvaluationResult.Tag.SuccessResult) { throw new EvaluationException(result); } return((DkmSuccessEvaluationResult)result); }
public static DkmEvaluationResult Evaluate(DkmVisualizedExpression expr, DkmEvaluationFlags flags, string text, DkmDataItem data) { using (DkmLanguageExpression vexpr = DkmLanguageExpression.Create(CppLanguage, flags, text, data)) { DkmEvaluationResult result = null; expr.EvaluateExpressionCallback(expr.InspectionContext, vexpr, expr.StackFrame, out result); return(result); } }
public static DkmSuccessEvaluationResult Create(DkmInspectionContext InspectionContext, DkmStackWalkFrame StackFrame, string Name, string FullName, DkmEvaluationResultFlags Flags, string Value, string EditableValue, string Type, DkmEvaluationResultCategory Category, DkmEvaluationResultAccessType Access, DkmEvaluationResultStorageType StorageType, DkmEvaluationResultTypeModifierFlags TypeModifierFlags, DkmDataAddress Address, ReadOnlyCollection <DkmCustomUIVisualizerInfo> CustomUIVisualizers, ReadOnlyCollection <DkmModuleInstance> ExternalModules, DkmDataItem DataItem) { DkmSuccessEvaluationResult result = new DkmSuccessEvaluationResult { InspectionContext = InspectionContext, Name = Name, FullName = FullName, Flags = Flags, Value = Value, Type = Type, Category = Category, EditableValue = EditableValue, CustomUIVisualizers = CustomUIVisualizers }; if (DataItem != null) { result.SetDataItem(DkmDataCreationDisposition.CreateNew, DataItem); } return(result); }