Sdílet prostřednictvím


DkmStackWalkContext Třída

Definice

DkmStackWalkContext umožňuje různým komponentám, které prochází, filtrují nebo kontrolují zásobníky volání, ukládat privátní data přidružená k tomuto zásobníku volání.

public ref class DkmStackWalkContext : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("33ebb282-734b-c2f3-66cd-c42eb8a3d490")]
public class DkmStackWalkContext : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("33ebb282-734b-c2f3-66cd-c42eb8a3d490")>]
type DkmStackWalkContext = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmStackWalkContext
Inherits DkmDataContainer
Implements IDisposable
Dědičnost
DkmStackWalkContext
Dědičnost
DkmStackWalkContext
Atributy
Implementuje

Vlastnosti

Flags

Příznaky pro řízení rámců vrácených během procházení zásobníku.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3).

IsUnloaded

Vrátí hodnotu true, pokud byla pro tento objekt vyvolána událost unloaded (příklad: DkmThread::Unload je volána) nebo pokud byl objekt uzavřen. Mějte na paměti, že při kontrole tohoto stavu je potřeba střídmět, protože bez synchronizace nemusí být vrácený stav po přečtení přesný.

(Zděděno od DkmDataContainer)
Process

DkmProcess představuje cílový proces, který se ladí. Ladicí program ladí procesy, takže se jedná o základní jednotku ladění. DkmProcess může představovat systémový proces nebo virtuální proces, například minidumps.

Thread

DkmThread představuje vlákno běžící v cílovém procesu.

ThreadContext

[Volitelné] Počáteční kontext Win32, který se má použít při provádění procházení zásobníku. Tato hodnota je obvykle null, ale dá se nastavit, aby se zobrazil jiný zásobník volání (např. .cxr).

TopStackPointer

Ukazatel zásobníku pro horní rámec zásobníku.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

UniqueId

Guid, který jednoznačně identifikuje tento DkmStackWalkContext.

Metody

Close()

Zavře instanci objektu DkmStackWalkContext. Tím se uvolní všechny prostředky přidružené k tomuto objektu napříč všemi komponentami. To zahrnuje prostředky napříč počítači nebo spravovanými nebo nativními hranicemi seřazování.

Objekty DkmStackWalkContext se automaticky zavřou při zavření jejich přidruženého objektu DkmThread.

Create(DkmThread, ReadOnlyCollection<Byte>, DkmDataItem)

Create novou instanci objektu DkmStackWalkContext.

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

Create novou instanci objektu DkmStackWalkContext.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

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

Create novou instanci objektu DkmStackWalkContext.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3).

FindSymbolStackWalkContext(Guid)

Vyhledejte prvek DkmSymbolStackWalkContext v tomto DkmStackWalkContext. Pokud není k dispozici žádný prvek s daným vstupním klíčem, FindSymbolStackWalkContext selže.

GetDataItem<T>()

Získá instanci T, která byla přidána do této instance kontejneru. Pokud tento kontejner neobsahuje "T", vrátí tato funkce hodnotu null.

(Zděděno od DkmDataContainer)
HeuristicWalkFrames(DkmFrameRegisters, UInt32, UInt64, DkmFrameRegisters, Boolean)

Pokuste se projít oblast zásobníku pomocí heuristického algoritmu procházení zásobníku. To se používá v x86, pokud nejsou k dispozici žádné symboly. Na jiných platformách se neimplementuje, protože PDATA umožňuje procházet všechny snímky.

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

Pokuste se projít oblast zásobníku pomocí heuristického algoritmu procházení zásobníku. To se používá v x86, pokud nejsou k dispozici žádné symboly. Na jiných platformách se neimplementuje, protože PDATA umožňuje procházet všechny snímky.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

RemoveDataItem<T>()

Odeberte z tohoto kontejneru instanci T. Obvykle není nutné volat tuto metodu, protože kontejner dat se automaticky vyprázdní při zavření objektu.

(Zděděno od DkmDataContainer)
RuntimeWalkNextFrames(DkmWorkList, UInt32, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAsyncResult>)

Pokuste se procházet zásobník bez použití symbolů. Tím se budou volat různé komponenty, které vědí, jak procházet části zásobníku (například snímky CLR budou procházet monitorováním ladění CLR). Nevyřešený rámec zůstane pro části zásobníku, které nelze procházet bez informací uložených v souboru symbolů. Tyto nevyřešené rámce nemají žádnou instrukční adresu ani popis.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

RuntimeWalkNextFrames(UInt32, Boolean)

Pokuste se procházet zásobník bez použití symbolů. Tím se budou volat různé komponenty, které vědí, jak procházet části zásobníku (například snímky CLR budou procházet monitorováním ladění CLR). Nevyřešený rámec zůstane pro části zásobníku, které nelze procházet bez informací uložených v souboru symbolů. Tyto nevyřešené rámce nemají žádnou instrukční adresu ani popis.

RuntimeWalkNextFramesAndCheckCache(DkmWorkList, UInt32, UInt32, DkmStackHash, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCacheAsyncResult>)

Zastaralé Nepoužívejte tuto metodu, vrátí zastaralé hodnoty hash; místo toho použijte IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164. Verze Modulu RuntimeWalkNextFrames(), která také kontroluje, jestli je stále platná kopie zásobníku volání uložená v mezipaměti.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

RuntimeWalkNextFramesAndCheckCache(UInt32, UInt32, DkmStackHash, Boolean, DkmStackHash, DkmStackWalkContext, Boolean)

Zastaralé Nepoužívejte tuto metodu, vrátí zastaralé hodnoty hash; místo toho použijte IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164. Verze Modulu RuntimeWalkNextFrames(), která také kontroluje, jestli je stále platná kopie zásobníku volání uložená v mezipaměti.

RuntimeWalkNextFramesAndCheckCache164(DkmWorkList, UInt32, UInt32, DkmStackHash164, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAndCheckCache164AsyncResult>)

Verze Modulu RuntimeWalkNextFrames(), která také kontroluje, jestli je stále platná kopie zásobníku volání uložená v mezipaměti.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4).

RuntimeWalkNextFramesAndCheckCache164(UInt32, UInt32, DkmStackHash164, Boolean, DkmStackHash164, DkmStackWalkContext, Boolean)

Verze Modulu RuntimeWalkNextFrames(), která také kontroluje, jestli je stále platná kopie zásobníku volání uložená v mezipaměti.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4).

SetDataItem<T>(DkmDataCreationDisposition, T)

Do kontejneru dat umístěte novou položku.

(Zděděno od DkmDataContainer)

Explicitní implementace rozhraní

IDisposable.Dispose()

DkmStackWalkContext umožňuje různým komponentám, které prochází, filtrují nebo kontrolují zásobníky volání, ukládat privátní data přidružená k tomuto zásobníku volání.

Platí pro