DkmSuccessEvaluationResult Class

Definition

The formatted result of a successful evaluation, ready to be displayed in an expression evaluation window.

public ref class DkmSuccessEvaluationResult : Microsoft::VisualStudio::Debugger::Evaluation::DkmEvaluationResult
[System.Runtime.InteropServices.Guid("5d948996-5805-1795-8b6b-535f0bc32bde")]
public class DkmSuccessEvaluationResult : Microsoft.VisualStudio.Debugger.Evaluation.DkmEvaluationResult
[<System.Runtime.InteropServices.Guid("5d948996-5805-1795-8b6b-535f0bc32bde")>]
type DkmSuccessEvaluationResult = class
    inherit DkmEvaluationResult
Public Class DkmSuccessEvaluationResult
Inherits DkmEvaluationResult
Inheritance
Attributes

Properties

Access

The access control level (public, private, etc) of the evaluation result.

Address

[Optional] If the result is an address (i.e. the address flag is set in Flags), specifies the location of the backing value. This is used when the evaluation result is used as the input to the memory window or disassembly window. If it is an instruction address then it must have the CPUInstruction address set.

Category

The category (ex: Data, Method, etc) of this evaluation result.

CustomUIVisualizers

[Optional] A list of custom viewers for this object.

EditableValue

[Optional] If the value is writable, specifies the default string to be used when you double-click on the value to edit it. The EE should be able to parse and evaluate this string and get back the current evaluation result. If the value is read-only, the editable value is ignored and should be null.

ExternalModules

[Optional] If available, a list of external modules, not including the current module, that are used for the inspection of the object. Loading symbols for as many modules in this list as possible will enhance the display of the object.

Flags

Flags which indicate attributes of an expression evaluation result.

FullName

[Optional] The full name of the expression this result applies to. This value is used to allow child elements to be added to the watch window (Add Watch from the context menu), and to refresh parts of the evaluation tree. As an example of how FullName differs from name, the name of the 0th element of an array in C++ is '[0]' while the full name would by 'myArrayVariable[0]'. For Visual Studio 14 and later it's possible to calculate the full name later if needed. To do this, the expression evaluator should create the DkmEvaluationResult with a null full name and implement IDkmFullNameProvider. Concord will then call IDkmFullNameProvider.CalculateFullName to get the full name when needed in the UI.

(Inherited from DkmEvaluationResult)
InspectionContext

Inspection context used to create this evaluation result.

(Inherited from DkmEvaluationResult)
InspectionSession

The InspectionSession allows the various components which examine data in the target process to store private data with the same lifetime. Inspection sessions are closed when the user attempts to continue the process.

(Inherited from DkmEvaluationResult)
IsUnloaded

Returns true if a 'unloaded' event has been raised for this object (example: DkmThread::Unload is called) or if the object has been closed. Note that care must be used when checking this status as, without synchronization, the returned status may no longer be accurate the instruction after it is read.

(Inherited from DkmDataContainer)
Language

Language used to perform inspections.

(Inherited from DkmEvaluationResult)
Name

The name of the expression this result applies to.

(Inherited from DkmEvaluationResult)
RefreshButtonText

[Optional] When DkmEvaluationResultFlags::CanEvaluateNow is set, specifies the text to display as a tooltip when the user hovers over the refresh button. If this value is null, a default message will be used.

This API was introduced in Visual Studio 15 RTM (DkmApiVersion.VS15RTM).

RuntimeInstance

Indicates which runtime monitor will be used to perform this evaluation.

(Inherited from DkmEvaluationResult)
StackFrame

The stack frame this expression result was created on.

(Inherited from DkmEvaluationResult)
StorageType

The storage type (ex: static) of the evaluation result.

TagValue

DkmEvaluationResult is an abstract base class. This enum indicates which derived class this object is an instance of.

(Inherited from DkmEvaluationResult)
Type

[Optional] A string that describes the type of the value.

TypeModifierFlags

Type modifier flags (ex: const) of the evaluation result.

UniqueId

Guid which uniquely identifies this evaluation result.

(Inherited from DkmEvaluationResult)
Value

[Optional] String that describes the value.

Methods

AddToFavorites(DkmSuccessEvaluationResult)

Adds the specified child to the collection of favorites items on the type of this result.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4).

Close()

Closes the evaluation result object to release the resources associated with it. This method must be invoked by the component which initiated the enumeration (ex: called DkmInspectionContext.EvaluateExpression, DkmEvaluationResultEnumContext.GetItems, etc).

DkmEvaluationResult objects are automatically closed when their associated DkmInspectionSession object is closed.

(Inherited from DkmEvaluationResult)
Create(DkmInspectionContext, DkmStackWalkFrame, String, String, DkmEvaluationResultFlags, String, String, String, DkmEvaluationResultCategory, DkmEvaluationResultAccessType, DkmEvaluationResultStorageType, DkmEvaluationResultTypeModifierFlags, DkmDataAddress, ReadOnlyCollection<DkmCustomUIVisualizerInfo>, ReadOnlyCollection<DkmModuleInstance>, DkmDataItem)

Create a new DkmSuccessEvaluationResult object instance.

Create(DkmInspectionContext, DkmStackWalkFrame, String, String, DkmEvaluationResultFlags, String, String, String, DkmEvaluationResultCategory, DkmEvaluationResultAccessType, DkmEvaluationResultStorageType, DkmEvaluationResultTypeModifierFlags, DkmDataAddress, ReadOnlyCollection<DkmCustomUIVisualizerInfo>, ReadOnlyCollection<DkmModuleInstance>, String, DkmDataItem)

Create a new DkmSuccessEvaluationResult object instance.

This API was introduced in Visual Studio 15 RTM (DkmApiVersion.VS15RTM).

CreateDebuggeeSideVisualizerObject(UInt32, String, String, String)

Instantiates the debuggee-side Custom Visualizer type in the debuggee process.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

CreateDebuggeeSideVisualizerObject(UInt32, String, String, String, Boolean)
CreateObjectId()

Creates an object id for this particular expression.

Location constraint: IDE components may call this method regardless of what type of code is being debugged. This method is also currently supported for debug monitor components, when debugging code running under the CLR; however this functionality may be removed in a future version.

(Inherited from DkmEvaluationResult)
CreateReplacementObjectOnDebuggeeSideVisualizer(Byte[], String, String, String)

Executes the debuggee-side Custom Visualizer type's CreateReplacementObject(...) method, and writes the result to the visualized object handle.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

DestroyDebuggeeSideVisualizerObject()

Releases the debuggee-side Custom Visualizer type in the debuggee process.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

DestroyObjectId()

Destroys an object id for this particular expression.

Location constraint: IDE components may call this method regardless of what type of code is being debugged. This method is also currently supported for debug monitor components, when debugging code running under the CLR; however this functionality may be removed in a future version.

(Inherited from DkmEvaluationResult)
ExtractFromProperty(IDebugProperty3)

Obtains the DkmSuccessEvaluationResult object which backs the IDebugProperty3 object. This API will only function correctly from the main thread of Visual Studio.

GetChildren(DkmWorkList, Int32, DkmInspectionContext, DkmCompletionRoutine<DkmGetChildrenAsyncResult>)

Gets an enumeration context used to obtain the children of this evaluation result. This is used in all expression evaluation windows.

This method will append a new work item to the specified work list, and return once the work item has been appended. The actual processing of the work item is asynchronous. The caller will be notified that the request is complete through the completion routine.

Location constraint: IDE components may call this method regardless of what type of code is being debugged. This method is also currently supported for debug monitor components, when debugging code running under the CLR; however this functionality may be removed in a future version.

(Inherited from DkmEvaluationResult)
GetClrValue()

Gets the underlying DkmClrValue from a DkmSuccessEvaluationResult, if it exists.

Location constraint: API must be called from a Monitor component (component level < 100,000).

This API was introduced in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

GetDataBreakpointDisplayName()

Gets the data breakpoint display name for the evaluation result.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetDataBreakpointDisplayName(DkmWorkList, DkmCompletionRoutine<DkmGetDataBreakpointDisplayNameAsyncResult>)

Gets the data breakpoint display name for the evaluation result.

This method will append a new work item to the specified work list, and return once the work item has been appended. The actual processing of the work item is asynchronous. The caller will be notified that the request is complete through the completion routine.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetDataBreakpointInfo(DkmWorkList, DkmCompletionRoutine<DkmGetDataBreakpointInfoAsyncResult>)

Returns the data breakpoint information related to the evaluation result, if valid.

This method will append a new work item to the specified work list, and return once the work item has been appended. The actual processing of the work item is asynchronous. The caller will be notified that the request is complete through the completion routine.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 15 Update 8 (DkmApiVersion.VS15Update8).

GetDataBreakpointInfo(String)

Returns the data breakpoint information related to the evaluation result, if valid.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 15 Update 8 (DkmApiVersion.VS15Update8).

GetDataFromDebuggeeSideVisualizer(DkmWorkList, DkmCompletionRoutine<DkmGetDataFromDebuggeeSideVisualizerAsyncResult>)
GetDataFromDebuggeeSideVisualizer(String, String, String)

Executes the debuggee-side Custom Visualizer type's GetData(...) method.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

GetDataItem<T>()

Gets the instance of 'T' which has been added to this container instance. If this container does not contain a 'T', this function will return null.

(Inherited from DkmDataContainer)
GetUnderlyingString()

This method is used for evaluation results that include DkmEvaluationResultFlags.RawString to obtain the the underlying string, with no enclosing quotes or escape sequences. This is method is invoked to display one of the various string visualizers in an expression evaluation window (click the magnifying glass icon).

Location constraint: IDE components may call this method regardless of what type of code is being debugged. This method is also currently supported for debug monitor components, when debugging code running under the CLR; however this functionality may be removed in a future version.

(Inherited from DkmEvaluationResult)
RemoveDataItem<T>()

Remove the instance of 'T' from this container. It is usually unnecessary to call this method as a data container will automatically be emptied when the object is closed.

(Inherited from DkmDataContainer)
RemoveFromFavorites(DkmSuccessEvaluationResult)

Removes the specified child from the collection of favorite items on the type of this result.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4).

ResolveAssembly(String, String, ReadOnlyCollection<Byte>)

Resolves an assembly name to the path of the assembly or to its raw bytes.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

SetDataItem<T>(DkmDataCreationDisposition, T)

Place a new item in the data container.

(Inherited from DkmDataContainer)
SetValueAsString(String, Int32, String)

Modifies the value of the given evaluation result (assumed to be non-read-only) to match the given string. This is used after the user edits a value in any of the evaluation windows.

Location constraint: IDE components may call this method regardless of what type of code is being debugged. This method is also currently supported for debug monitor components, when debugging code running under the CLR; however this functionality may be removed in a future version.

(Inherited from DkmEvaluationResult)
TransferDataToDebuggeeSideVisualizer(Byte[], String, String, String)

Executes the debuggee-side Custom Visualizer type's TransferData(...) method.

Location constraint: API must be called from an IDE component (component level > 100,000).

This API was introduced in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

Explicit Interface Implementations

IDisposable.Dispose() (Inherited from DkmEvaluationResult)

Applies to