DkmMonitorStackWalkContext Class

Definition

DkmMonitorStackWalkContext allows the various components DkmSymbolStackWalkContext with this call stack.

public ref class DkmMonitorStackWalkContext : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("4ce2f85d-5b40-4a4c-5eba-79e9228e48b1")]
public class DkmMonitorStackWalkContext : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("4ce2f85d-5b40-4a4c-5eba-79e9228e48b1")>]
type DkmMonitorStackWalkContext = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmMonitorStackWalkContext
Inherits DkmDataContainer
Implements IDisposable
Inheritance
DkmMonitorStackWalkContext
Inheritance
DkmMonitorStackWalkContext
Attributes
Implements

Properties

Flags

Flags to control frames returned during a stack walk.

This API was introduced in Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3).

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

The DkmRuntimeInstance class represents an execution environment which is loaded into a DkmProcess and which contains code to be debugged.

Thread

DkmThread represents a thread running in the target process.

ThreadContext

[Optional] The initial Win32 CONTEXT to use when performing the stack walk. This value is normally 'null' but can be set in order to view another call stack (ex: .cxr).

UniqueId

Guid which uniquely identifies this DkmMonitorStackWalkContext.

Methods

Close()

Closes a DkmMonitorStackWalkContext object instance. This will release any resources associated with this object across all components. This includes resources across computer or managed/native marshalling boundaries.

DkmMonitorStackWalkContext objects are automatically closed when their associated DkmThread object is closed.

This method may only be called by the component which created the object.

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

Create(DkmRuntimeInstance, DkmThread, ReadOnlyCollection<Byte>, DkmDataItem)

Create a new DkmMonitorStackWalkContext object instance. The caller is responsible for closing the created object after they are done.

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

Create(DkmRuntimeInstance, DkmThread, ReadOnlyCollection<Byte>, DkmStackWalkContextFlags, DkmDataItem)

Create a new DkmMonitorStackWalkContext object instance. The caller is responsible for closing the created object after they are done.

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

This API was introduced in Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3).

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)
Initialize(DkmFrameRegisters, UInt32)

Initialize is invoked on each walker exactly once at the beginning of the walk process. This gives each walker a chance to initialize any state.

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

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)
UpdatePosition(DkmFrameRegisters, UInt32)

UpdatePosition is invoked by the stack merger after another walker has walked one or more frames, and so this walker must be updated before invoking WalkNextFrame. Runtimes that maintain their own internal stack range state within in the target process will likely have nothing to do within this method.

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

WalkNextFrame()

Attempt to walk the next stack frame. The DkmMonitorStackWalkResult structure indicates if this monitor was able to walk the frame.

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

Explicit Interface Implementations

IDisposable.Dispose()

Applies to