DkmStackWalkContext 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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
- 繼承
- 繼承
- 屬性
- 實作
屬性
| 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 可讓各種元件執行、篩選或檢查呼叫堆棧,以儲存與此呼叫堆棧相關聯的私人數據。 |