/// <summary> /// Gets all values. The returned <see cref="DbgValueNode"/>s are automatically closed when their runtime continues. /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="options">Options</param> /// <returns></returns> public abstract DbgValueNode[] GetNodes(DbgEvaluationInfo evalInfo, DbgValueNodeEvaluationOptions options);
/// <summary> /// Gets all values. The returned <see cref="DbgValueNode"/>s are automatically closed when their runtime continues. /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="options">Options</param> /// <param name="localsOptions">Locals value node provider options</param> /// <returns></returns> public abstract DbgLocalsValueNodeInfo[] GetNodes(DbgEvaluationInfo evalInfo, DbgValueNodeEvaluationOptions options, DbgLocalsValueNodeEvaluationOptions localsOptions);
/// <summary> /// Formats a stack frame /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="output">Output</param> /// <param name="options">Stack frame options</param> /// <param name="valueOptions">Value option</param> /// <param name="cultureInfo">Culture or null to use invariant culture</param> public abstract void FormatFrame(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgStackFrameFormatterOptions options, DbgValueFormatterOptions valueOptions, CultureInfo?cultureInfo);
/// <summary> /// Formats a value's type /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="output">Output</param> /// <param name="value">Value to format</param> /// <param name="options">Options</param> /// <param name="cultureInfo">Culture or null to use invariant culture</param> public abstract void FormatType(DbgEvaluationInfo evalInfo, IDbgTextWriter output, DbgValue value, DbgValueFormatterTypeOptions options, CultureInfo?cultureInfo);
/// <summary> /// Creates new children. The returned <see cref="DbgValueNode"/>s are automatically closed when their runtime continues /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="index">Index of first child</param> /// <param name="count">Max number of children to return</param> /// <param name="options">Options</param> /// <returns></returns> public abstract DbgValueNode[] GetChildren(DbgEvaluationInfo evalInfo, ulong index, int count, DbgValueNodeEvaluationOptions options);
/// <summary> /// Formats the name /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="output">Output</param> /// <param name="options">Formatter options</param> /// <param name="cultureInfo">Culture or null to use invariant culture</param> public void FormatName(DbgEvaluationInfo evalInfo, ITextColorWriter output, DbgValueFormatterOptions options, CultureInfo cultureInfo = null) => Format(evalInfo, new DbgValueNodeFormatParameters {
/// <summary> /// Creates <see cref="DbgValueNode"/>s. The returned <see cref="DbgValueNode"/>s are automatically closed when their runtime continues. /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="objectIds">Object ids</param> /// <param name="options">Options</param> /// <returns></returns> public abstract DbgValueNode[] Create(DbgEvaluationInfo evalInfo, DbgObjectId[] objectIds, DbgValueNodeEvaluationOptions options);
/// <summary> /// Number of children. This property is called as late as possible and can be lazily initialized. /// It's assumed to be 0 if <see cref="HasChildren"/> is false. /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <returns></returns> public abstract ulong GetChildCount(DbgEvaluationInfo evalInfo);
/// <summary> /// Creates a <see cref="DbgValueNode"/>. The returned <see cref="DbgValueNode"/>s are automatically closed when their runtime continues. /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="expressions">Expressions to evaluate</param> /// <returns></returns> public abstract DbgCreateValueNodeResult[] Create(DbgEvaluationInfo evalInfo, DbgExpressionEvaluationInfo[] expressions);
/// <summary> /// Creates <see cref="DbgValueNode"/>s /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="expression">Expression</param> /// <param name="nodeOptions">Value node options</param> /// <param name="options">Eval options</param> /// <param name="expressionEvaluatorState">State created by <see cref="DbgExpressionEvaluator.CreateExpressionEvaluatorState"/> or null to store the state in <paramref name="evalInfo"/>'s context</param> /// <returns></returns> public DbgCreateValueNodeResult Create(DbgEvaluationInfo evalInfo, string expression, DbgValueNodeEvaluationOptions nodeOptions, DbgEvaluationOptions options, object?expressionEvaluatorState) => Create(evalInfo, new[] { new DbgExpressionEvaluationInfo(expression, nodeOptions, options, expressionEvaluatorState) })[0];
/// <summary> /// Assigns the value of an expression to another expression /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="expression">Target expression (lhs)</param> /// <param name="valueExpression">Source expression (rhs)</param> /// <param name="options">Options</param> /// <returns></returns> public abstract DbgEEAssignmentResult Assign(DbgEvaluationInfo evalInfo, string expression, string valueExpression, DbgEvaluationOptions options);
/// <summary> /// Evaluates an expression. The returned <see cref="DbgValue"/> is automatically closed when its runtime continues. /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="expression">Expression to evaluate</param> /// <param name="options">Options</param> /// <param name="state">State created by <see cref="CreateExpressionEvaluatorState"/> or null to store the state in <paramref name="evalInfo"/>'s context</param> /// <returns></returns> public abstract DbgEvaluationResult Evaluate(DbgEvaluationInfo evalInfo, string expression, DbgEvaluationOptions options, object state);
/// <summary> /// Formats a value /// </summary> /// <param name="evalInfo">Evaluation info</param> /// <param name="output">Output</param> /// <param name="value">Value to format</param> /// <param name="options">Options</param> /// <param name="cultureInfo">Culture or null to use invariant culture</param> public abstract void FormatValue(DbgEvaluationInfo evalInfo, ITextColorWriter output, DbgValue value, DbgValueFormatterOptions options, CultureInfo cultureInfo);