DkmStackWalkContext 類別

定義

DkmStackWalkContext 可讓各種元件執行、篩選或檢查呼叫堆棧,以儲存與此呼叫堆棧相關聯的私人數據。

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
繼承
DkmStackWalkContext
繼承
DkmStackWalkContext
屬性
實作

屬性

Flags

用來控制堆疊逐步執行期間傳回之畫面格的旗標。

此 API 是在 Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) 引進。

IsUnloaded

如果已針對這個對象引發 'unloaded' 事件, (範例:DkmThread::Unload 呼叫) 或對象已關閉,則傳回 true。 請注意,檢查此狀態時,請務必小心,而不需同步處理,傳回的狀態在讀取之後可能無法再精確指示。

(繼承來源 DkmDataContainer)
Process

DkmProcess 代表正在偵錯的目標進程。 調試程式會偵錯進程,因此這是偵錯的基本單元。 DkmProcess 可以代表系統進程或虛擬進程,例如minidumps。

Thread

DkmThread 代表在目標進程中執行的線程。

ThreadContext

[選擇性]執行堆疊逐步解說時要使用的初始 Win32 CONTEXT。 此值通常是 『null』,但可以設定為檢視另一個呼叫堆疊 (例如:.cxr) 。

TopStackPointer

頂端堆疊框架的堆疊指標。

此 API 是在 Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6) 中引進。

UniqueId

可唯一識別此 DkmStackWalkContext 的 Guid。

方法

Close()

關閉 DkmStackWalkContext 物件實例。 這會在所有元件中釋放與此對象相關聯的任何資源。 這包括跨計算機或受控/原生封送處理界限的資源。

當相關聯的 DkmThread 物件關閉時,會自動關閉 DkmStackWalkContext 物件。

Create(DkmThread, ReadOnlyCollection<Byte>, DkmDataItem)

Create 新的 DkmStackWalkContext 物件實例。

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

Create 新的 DkmStackWalkContext 物件實例。

此 API 是在 Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6) 中引進。

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

Create 新的 DkmStackWalkContext 物件實例。

此 API 是在 Visual Studio 17 Update 3 (DkmApiVersion.VS17Update3) 引進。

FindSymbolStackWalkContext(Guid)

在此 DkmStackWalkContext 內尋找 DkmSymbolStackWalkContext 元素。 如果沒有具有指定輸入索引鍵的專案存在,FindSymbolStackWalkContext 將會失敗。

GetDataItem<T>()

取得已新增至這個容器實例的 『T』 實例。 如果此容器不包含 『T』,此函式會傳回 null。

(繼承來源 DkmDataContainer)
HeuristicWalkFrames(DkmFrameRegisters, UInt32, UInt64, DkmFrameRegisters, Boolean)

嘗試使用啟發式堆疊逐步解說演算法來逐步執行堆疊的區域。 當沒有符號可用時,這會在 x86 中使用。 它不會在其他平台上實作,因為 PDATA 允許所有畫面格的逐步執行。

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

嘗試使用啟發式堆疊逐步解說演算法來逐步執行堆疊的區域。 當沒有符號可用時,這會在 x86 中使用。 它不會在其他平台上實作,因為 PDATA 允許所有畫面格的逐步執行。

這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。

RemoveDataItem<T>()

從這個容器中移除 『T』 的實例。 通常不需要呼叫這個方法,因為關閉物件時,數據容器會自動清空。

(繼承來源 DkmDataContainer)
RuntimeWalkNextFrames(DkmWorkList, UInt32, DkmCompletionRoutine<DkmRuntimeWalkNextFramesAsyncResult>)

嘗試在不使用符號的情況下逐步執行堆疊。 這會呼叫各種元件,以瞭解如何逐步執行堆疊部分 (例如:CLR 偵錯監視器會逐步執行 CLR 偵錯監視器) 。 在符號檔內儲存信息的情況下,堆疊部分無法進行逐步解說的「未解析」框架會保留下來。 這些「未解析」畫面沒有 InstructionAddress 或 Description。

這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。

RuntimeWalkNextFrames(UInt32, Boolean)

嘗試在不使用符號的情況下逐步執行堆疊。 這會呼叫各種元件,以瞭解如何逐步執行堆疊部分 (例如:CLR 偵錯監視器會逐步執行 CLR 偵錯監視器) 。 在符號檔內儲存信息的情況下,堆疊部分無法進行逐步解說的「未解析」框架會保留下來。 這些「未解析」畫面沒有 InstructionAddress 或 Description。

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

已取代。 請勿使用此方法,它會傳回過期的哈希值;請改用 IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164。 RuntimeWalkNextFrames 版本 () ,也會檢查呼叫堆棧的快取複本是否仍然有效。

這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。

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

已取代。 請勿使用此方法,它會傳回過期的哈希值;請改用 IDkmMergedMonitorStackWalk164::RuntimeWalkNextFramesAndCheckCache164。 RuntimeWalkNextFrames 版本 () ,也會檢查呼叫堆棧的快取複本是否仍然有效。

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

RuntimeWalkNextFrames 版本 () ,也會檢查呼叫堆棧的快取複本是否仍然有效。

這個方法會將新的工作專案附加至指定的工作清單,並在附加工作項目之後傳回。 工作項目的實際處理是異步的。 呼叫端將會透過完成例程收到要求完成的通知。

此 API 是在 Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4) 引進。

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

RuntimeWalkNextFrames 版本 () ,也會檢查呼叫堆棧的快取複本是否仍然有效。

此 API 是在 Visual Studio 16 Update 4 (DkmApiVersion.VS16Update4) 引進。

SetDataItem<T>(DkmDataCreationDisposition, T)

將新專案放在數據容器中。

(繼承來源 DkmDataContainer)

明確介面實作

IDisposable.Dispose()

DkmStackWalkContext 可讓各種元件執行、篩選或檢查呼叫堆棧,以儲存與此呼叫堆棧相關聯的私人數據。

適用於