DkmStackWalkContext.HeuristicWalkFrames Yöntem

Tanım

Aşırı Yüklemeler

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

Buluşsal yığın yürüme algoritması kullanarak yığının bir bölgesine ilerleme yapmayı deneyin. Bu, kullanılabilir bir sembol olmadığında x86 'da kullanılır. PDATA, tüm karelerin yürümesi nedeniyle diğer platformlarda uygulanmaz.

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

Buluşsal yığın yürüme algoritması kullanarak yığının bir bölgesine ilerleme yapmayı deneyin. Bu, kullanılabilir bir sembol olmadığında x86 'da kullanılır. PDATA, tüm karelerin yürümesi nedeniyle diğer platformlarda uygulanmaz.

Bu yöntem, belirtilen çalışma listesine yeni bir iş öğesi ekler ve iş öğesi eklendikten sonra döndürülür. İş öğesinin gerçek işlenmesi zaman uyumsuzdur. Çağrıyı yapan, isteğin tamamlanma yordamı aracılığıyla tamamlandığını bilgilendirilir.

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

Buluşsal yığın yürüme algoritması kullanarak yığının bir bölgesine ilerleme yapmayı deneyin. Bu, kullanılabilir bir sembol olmadığında x86 'da kullanılır. PDATA, tüm karelerin yürümesi nedeniyle diğer platformlarda uygulanmaz.

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

Parametreler

Registers
DkmFrameRegisters

'Ndaki Yürümek için kayıt yapar.

RequestSize
UInt32

'Ndaki RequestSize, çağıranın döndürülmesini istediğiniz çerçevelerin sayısıdır. HeuristicWalkFrames uygulamasının uygulanması, yığının bu birçok çerçeveyi içermediği durumda daha az çerçeve döndürebilir.

EndStackPointer
UInt64

'Ndaki Geriye doğru izlemeyi durdurmak için yığın adresi. Son yığın işaretçisi yoksa, bu değer UInt64. MaxValue ' dır.

NextRegisters
DkmFrameRegisters

[Out, Isteğe bağlı] Nextyazmaçları bir sonraki çerçevenin (' FrameObject ' çağıranı) kayıtlarını gösterir. Bu, yığın tamamlandıysa veya EndStackPointer öğesine ulaşıldığında null olur.

EndOfStack
Boolean

Dışı İzleyici yığının sonuna ulaştığında true döndürür.

Döndürülenler

DkmStackWalkFrame[]

Dışı DkmStackWalkFrame [], bir çağrı yığınında, ancak biçimlendirilmemiş veya filtrelenmemiş bir kareyi temsil eder. Biçimlendirilen çerçeveler, yerine DkmStackFrame tarafından temsil edilir.

Şunlara uygulanır

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

Buluşsal yığın yürüme algoritması kullanarak yığının bir bölgesine ilerleme yapmayı deneyin. Bu, kullanılabilir bir sembol olmadığında x86 'da kullanılır. PDATA, tüm karelerin yürümesi nedeniyle diğer platformlarda uygulanmaz.

Bu yöntem, belirtilen çalışma listesine yeni bir iş öğesi ekler ve iş öğesi eklendikten sonra döndürülür. İş öğesinin gerçek işlenmesi zaman uyumsuzdur. Çağrıyı yapan, isteğin tamamlanma yordamı aracılığıyla tamamlandığını bilgilendirilir.

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

Parametreler

WorkList
DkmWorkList

Yeni iş öğesinin ekleneceği WorkList.

Registers
DkmFrameRegisters

'Ndaki Yürümek için kayıt yapar.

RequestSize
UInt32

'Ndaki RequestSize, çağıranın döndürülmesini istediğiniz çerçevelerin sayısıdır. HeuristicWalkFrames uygulamasının uygulanması, yığının bu birçok çerçeveyi içermediği durumda daha az çerçeve döndürebilir.

EndStackPointer
UInt64

'Ndaki Geriye doğru izlemeyi durdurmak için yığın adresi. Son yığın işaretçisi yoksa, bu değer UInt64. MaxValue ' dır.

CompletionRoutine
DkmCompletionRoutine<DkmHeuristicWalkFramesAsyncResult>

İstek tamamlandığında harekete geçirme yordamı. İstek, iş listesine başarıyla eklendiğinde, bu her zaman başlatılır (işlem iptal edildiğinde dahil). Bu, iş öğesi ekleme başarısız olursa hiçbir şekilde harekete geçmeyecektir.

Şunlara uygulanır