DkmStackWalkContext.HeuristicWalkFrames Method

Definition

Overloads

HeuristicWalkFrames(DkmFrameRegisters, UInt32, UInt64, DkmFrameRegisters, Boolean)

Attempt to walk through a region of the stack using a heuristic stack walk algorithm. This is used in x86 when no symbols are available. It is not implemented on other platforms as PDATA allows walking of all frames.

HeuristicWalkFrames(DkmWorkList, DkmFrameRegisters, UInt32, UInt64, DkmCompletionRoutine<DkmHeuristicWalkFramesAsyncResult>)

Attempt to walk through a region of the stack using a heuristic stack walk algorithm. This is used in x86 when no symbols are available. It is not implemented on other platforms as PDATA allows walking of all frames.

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.

HeuristicWalkFrames(DkmFrameRegisters, UInt32, UInt64, DkmFrameRegisters, Boolean)

Attempt to walk through a region of the stack using a heuristic stack walk algorithm. This is used in x86 when no symbols are available. It is not implemented on other platforms as PDATA allows walking of all frames.

public:
 cli::array <Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame ^> ^ HeuristicWalkFrames(Microsoft::VisualStudio::Debugger::CallStack::DkmFrameRegisters ^ Registers, System::UInt32 RequestSize, System::UInt64 EndStackPointer, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Debugger::CallStack::DkmFrameRegisters ^ % NextRegisters, [Runtime::InteropServices::Out] bool % EndOfStack);
public Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame[] HeuristicWalkFrames (Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters Registers, uint RequestSize, ulong EndStackPointer, out Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters NextRegisters, out bool EndOfStack);
member this.HeuristicWalkFrames : Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters * uint32 * uint64 * DkmFrameRegisters * bool -> Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame[]
Public Function HeuristicWalkFrames (Registers As DkmFrameRegisters, RequestSize As UInteger, EndStackPointer As ULong, ByRef NextRegisters As DkmFrameRegisters, ByRef EndOfStack As Boolean) As DkmStackWalkFrame()

Parameters

Registers
DkmFrameRegisters

[In] Registers to attempt to walk from.

RequestSize
UInt32

[In] RequestSize is the number of frames that the caller would like returned. The implementation of HeuristicWalkFrames may return fewer frames in the case that stack does not contain that many frames.

EndStackPointer
UInt64

[In] Stack address to stop the unwinding at. This value is UInt64.MaxValue if the no end stack pointer is present.

NextRegisters
DkmFrameRegisters

[Out,Optional] NextRegisters indicates the registers of the next frame (the caller of 'FrameObject'). This will be null if the stack is complete, or if the EndStackPointer was reached.

EndOfStack
Boolean

[Out] Returns true if the monitor reached the end of the stack.

Returns

[Out] DkmStackWalkFrame[] represents a frame on a call stack which has been walked, but may not have been formatted or filtered. Formatted frames are represented by DkmStackFrame instead.

Applies to

HeuristicWalkFrames(DkmWorkList, DkmFrameRegisters, UInt32, UInt64, DkmCompletionRoutine<DkmHeuristicWalkFramesAsyncResult>)

Attempt to walk through a region of the stack using a heuristic stack walk algorithm. This is used in x86 when no symbols are available. It is not implemented on other platforms as PDATA allows walking of all frames.

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.

public:
 void HeuristicWalkFrames(Microsoft::VisualStudio::Debugger::DkmWorkList ^ WorkList, Microsoft::VisualStudio::Debugger::CallStack::DkmFrameRegisters ^ Registers, System::UInt32 RequestSize, System::UInt64 EndStackPointer, Microsoft::VisualStudio::Debugger::DkmCompletionRoutine<Microsoft::VisualStudio::Debugger::CallStack::DkmHeuristicWalkFramesAsyncResult> ^ CompletionRoutine);
public void HeuristicWalkFrames (Microsoft.VisualStudio.Debugger.DkmWorkList WorkList, Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters Registers, uint RequestSize, ulong EndStackPointer, Microsoft.VisualStudio.Debugger.DkmCompletionRoutine<Microsoft.VisualStudio.Debugger.CallStack.DkmHeuristicWalkFramesAsyncResult> CompletionRoutine);
member this.HeuristicWalkFrames : Microsoft.VisualStudio.Debugger.DkmWorkList * Microsoft.VisualStudio.Debugger.CallStack.DkmFrameRegisters * uint32 * uint64 * Microsoft.VisualStudio.Debugger.DkmCompletionRoutine<Microsoft.VisualStudio.Debugger.CallStack.DkmHeuristicWalkFramesAsyncResult> -> unit
Public Sub HeuristicWalkFrames (WorkList As DkmWorkList, Registers As DkmFrameRegisters, RequestSize As UInteger, EndStackPointer As ULong, CompletionRoutine As DkmCompletionRoutine(Of DkmHeuristicWalkFramesAsyncResult))

Parameters

WorkList
DkmWorkList

WorkList to append the new work item to.

Registers
DkmFrameRegisters

[In] Registers to attempt to walk from.

RequestSize
UInt32

[In] RequestSize is the number of frames that the caller would like returned. The implementation of HeuristicWalkFrames may return fewer frames in the case that stack does not contain that many frames.

EndStackPointer
UInt64

[In] Stack address to stop the unwinding at. This value is UInt64.MaxValue if the no end stack pointer is present.

CompletionRoutine
DkmCompletionRoutine<DkmHeuristicWalkFramesAsyncResult>

Routine to fire when the request is complete. If the request is successfully appended to the work list, this will always fire (including when the operation is canceled). This will never fire if appending the work item fails.

Applies to