DkmAsyncStackWalkContext Class

Definition

Provides a context for walking async return stacks and task creation stacks.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

public ref class DkmAsyncStackWalkContext : Microsoft::VisualStudio::Debugger::DkmDataContainer
[System.Runtime.InteropServices.Guid("be372de0-27f8-fcb3-6a35-27128111cd17")]
public class DkmAsyncStackWalkContext : Microsoft.VisualStudio.Debugger.DkmDataContainer
[<System.Runtime.InteropServices.Guid("be372de0-27f8-fcb3-6a35-27128111cd17")>]
type DkmAsyncStackWalkContext = class
    inherit DkmDataContainer
Public Class DkmAsyncStackWalkContext
Inherits DkmDataContainer
Inheritance
DkmAsyncStackWalkContext
Inheritance
DkmAsyncStackWalkContext
Attributes

Properties

CurrentTaskOnly

Get only the stack frames for the context's task rather than the full async stack .

This API was introduced in Visual Studio 16 Update 7 (DkmApiVersion.VS16Update7).

FrameObject

[Optional] Optional evaluation result representing the frame that this stack walk context refers to. When C++ debugging, this is used to support inspection inside of return stack frames.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

InspectionSession

The inspection session that owns this task object.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

InternalStackFrame

[Optional] Internal stack frame used to perform inspection operations on async frames in the return stack, for example, the CLR requires an ICorDebugFrame to read static fields.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

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)
ReturnStackFunctions

[Optional] For native async frames, specifies an list of available functions in the return stack, from which captured local variables may be extracted from. Null for managed and JavaScript.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

RuntimeInstance

The runtime instance associated with this task object.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Task

[Optional] Optional task to use for inspection of async frames.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

TaskIdentityStackFrame

[Optional] If this stack walk context refers to a task that is associated with a particular stack frame, specifies the stack frame that this task object is associated with.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

TaskProviderId

Extensible GUID indicating the task provider which a task is from.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

UniqueId

Guid which uniquely identifies this evaluation result.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

Methods

Create(DkmInspectionSession, Guid, DkmStackWalkFrame, DkmStackWalkFrame, DkmSuccessEvaluationResult, DkmTask, ReadOnlyCollection<DkmSuccessEvaluationResult>, DkmRuntimeInstance, Boolean, DkmDataItem)

Create a new DkmAsyncStackWalkContext object instance.

This API was introduced in Visual Studio 16 Update 7 (DkmApiVersion.VS16Update7).

Create(DkmInspectionSession, Guid, DkmStackWalkFrame, DkmStackWalkFrame, DkmSuccessEvaluationResult, DkmTask, ReadOnlyCollection<DkmSuccessEvaluationResult>, DkmRuntimeInstance, DkmDataItem)

Create a new DkmAsyncStackWalkContext object instance.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

GetAsyncCallStack(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmGetAsyncCallStackAsyncResult>)

Gets the async call stack of this thread.

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: This API can normally only be called on the client side normally. It can be called on the remote side for script.

This API was introduced in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

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)
GetTaskContinuationFrames(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmGetTaskContinuationFramesAsyncResult>)

Returns a list of frames that will execute when this task completes. The order that the frames will execute in is arbitrary and might not be the order returned here. Only frames that will execute as a direct result of this task are included, not frames that will execute as a result of another task that will execute after this task completes.

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 12 RTM (DkmApiVersion.VS12RTM).

GetTaskCreationStack(DkmWorkList, DkmThread, DkmCompletionRoutine<DkmGetTaskCreationStackAsyncResult>)

Gets the logged creation stack of this task.

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 12 RTM (DkmApiVersion.VS12RTM).

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)
SetDataItem<T>(DkmDataCreationDisposition, T)

Place a new item in the data container.

(Inherited from DkmDataContainer)

Applies to