DkmStackWalkContext.HeuristicWalkFrames Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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);
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.