DkmStackFrame 類別

定義

DkmStackFrame 在篩選和轉譯之後,代表呼叫堆棧上的框架。

public ref class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[Windows::Foundation::Metadata::WebHostHidden]
class DkmStackFrame : Microsoft::VisualStudio::Debugger::CallStack::DkmStackWalkFrame
[System.Runtime.InteropServices.Guid("9e32fe11-196e-a0ec-b83c-0792427e91a2")]
public class DkmStackFrame : Microsoft.VisualStudio.Debugger.CallStack.DkmStackWalkFrame
[<System.Runtime.InteropServices.Guid("9e32fe11-196e-a0ec-b83c-0792427e91a2")>]
type DkmStackFrame = class
    inherit DkmStackWalkFrame
Public Class DkmStackFrame
Inherits DkmStackWalkFrame
繼承
DkmStackFrame
屬性

屬性

AnnotatedModule

[選擇性]如果我們有標註的框架,請指定要與此框架建立關聯的選擇性模組實例。 如果有,使用者在呼叫堆疊視窗中以滑鼠右鍵按兩下此框架,即可載入此模組的二進位檔或符號。 這是非批注框架的 NULL。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 引进。

(繼承來源 DkmStackWalkFrame)
Annotations

[選擇性]堆疊框架註釋的唯讀集合。 這些是由回溯器所定義,且專屬於該回溯器。 例如,使用方式是如何將內嵌框架數據從內嵌堆疊篩選傳遞至格式器。

(繼承來源 DkmStackWalkFrame)
AsyncContext

[選擇性]用於逐步執行異步傳回堆疊和工作建立堆疊的選擇性內容。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 引进。

(繼承來源 DkmStackWalkFrame)
BasicSymbolInfo

[選擇性]包含對應至框架的 InstructionAddress 之 DkmInstructionSymbol 的基本資訊。 針對原生畫面,這會由 StackProvider 計算,再將框架傳遞至堆棧篩選器。

DkmStackFrame 一律會是 Null。

此 API 是在 Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview) 中引進。

(繼承來源 DkmStackWalkFrame)
CompilerId

產生此堆疊框架之程式代碼的 LanguageId/VendorId。 如果這未知 (例如:此課程模組未載入任何符號) ,則這兩個值都會是 Guid.Empty。 否則,這兩個值都應該是非零。

Connection

這代表監視器與 IDE 之間的連線。 如果監視器在與 IDE 相同的進程中執行,則它可以是本機連線,也可以是遠端連線。 在監視程式中,只有一個連線。

(繼承來源 DkmStackWalkFrame)
Data

[選擇性]附加至 DkmStackWalkFrame 的選擇性對象,允許元件將其他私人數據與框架產生關聯。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 引进。

(繼承來源 DkmStackWalkFrame)
Description

[選擇性]顯示在呼叫堆疊視窗中的框架描述。 這應該提供給批注框架。

(繼承來源 DkmStackWalkFrame)
Flags

標幟 DkmStackWalkFrame 的屬性。

(繼承來源 DkmStackWalkFrame)
FrameBase

框架的基底堆疊指標。 這由 SDM 用來排序框架,堆疊合併會用來評估逐步解說進度,因此即使已標註的框架也需要此值。 只有在偵錯程式堆疊損毀時,此值才應該無效。

(繼承來源 DkmStackWalkFrame)
FrameName

堆疊框架的名稱。 DkmStackFrame.FormatOptions 會決定函式名稱的格式。

FrameSize

此框架所耗用堆疊的位元元數目。 這個值將會是批注框架的零,如果值未知則為零。

(繼承來源 DkmStackWalkFrame)
InstructionAddress

[選擇性]此框架的指示。 這可以省略批注框架。

(繼承來源 DkmStackWalkFrame)
IsStale

指定此堆疊框架在 [編輯後繼續] 之後是否過時。

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

ModuleInstance

[選擇性]包含此位址的模組。 即使自定義位址) ,沒有模組的位址也無法有符號 (。 CLR 位址一律會有模組。 如果 CPU 跳到無效的位址 (例如 NULL) ,或者 CPU 正在動態發出程式代碼,則原生位址不會有模組。

(繼承來源 DkmStackWalkFrame)
Options

會影響堆疊提供者格式化 DkmStackFrame 之設定的集合。

Priority

堆疊逐步解說框架的優先順序。 這通常用於偵測到問題的批注畫面。

此 API 是在 Visual Studio 17 Update 5 (DkmApiVersion.VS17Update5) 引進。

(繼承來源 DkmStackWalkFrame)
Process

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

(繼承來源 DkmStackWalkFrame)
Registers

[選擇性]已逐步解說框架的緩存器。 這些應該提供給未標註的畫面格。

(繼承來源 DkmStackWalkFrame)
ReturnType

[選擇性]堆疊框架的傳回型別名稱。 只有在設定 DkmFrameNameFormatOptions.ReturnTypeField 時,才會提供此功能。

RuntimeInstance

[選擇性]DkmRuntimeInstance 類別代表載入 DkmProcess 並包含要偵錯之程式碼的執行環境。

(繼承來源 DkmStackWalkFrame)
SourcePosition

[選擇性]此堆疊框架的原始碼位置。 只有在設定 DkmFrameNameFormatOptions.DocumentPositionField 時,才會提供此功能。

Thread

這個堆疊框架所在的線程。

(繼承來源 DkmStackWalkFrame)
UniqueId

DkmStackWalkFrame 的唯一標識符。 在遠端偵錯案例中,如果框架是從較舊的 IDE/遠端調試程式封送處理,則可能GUID_NULL/Guid.Empty。

此 API 是在 Visual Studio 16 Update 10 (DkmApiVersion.VS16Update10) 引進。

(繼承來源 DkmStackWalkFrame)

方法

CanSetNextStatement(DkmInstructionAddress)

CanSetNextStatement 會判斷是否可以移動堆疊框架的 IP。 堆疊框架一律是特定線程上的分葉堆疊框架。 此 API 只能在引擎程式內實作。 Result out 參數應該S_OK或 UI 可以對應至錯誤訊息的失敗 HRESULT 值。

位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。

(繼承來源 DkmStackWalkFrame)
ComputeUserStatus(DkmInspectionSession, Boolean)

判斷框架是否為使用者程序代碼。

位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。

此 API 是在 Visual Studio 12 RTM (DkmApiVersion.VS12RTM) 引进。

(繼承來源 DkmStackWalkFrame)
Create(DkmStackWalkFrame, DkmFrameFormatOptions, DkmCompilerId, String, String, DkmSourcePosition)

Create 新的 DkmStackFrame 物件實例。

位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。

Create(DkmStackWalkFrame, DkmFrameFormatOptions, DkmCompilerId, String, String, DkmSourcePosition, Boolean)

Create 新的 DkmStackFrame 物件實例。

位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。

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

ExtractFromAD7Object(IDebugStackFrame2)

從 AD7 堆疊框架物件取得 DkmStackFrame。 Visual Studio 套件或想要存取 Concord API 的載入宏會使用此 API,以取得偵錯程式的詳細資訊。 此 API 只會從 Visual Studio 的主線程正確運作。

ExtractFromDTEObject(StackFrame)

從 DTE (調試程式自動化) 堆疊框架物件取得 DkmStackFrame。 Visual Studio 套件或想要存取 Concord API 的載入宏會使用此 API,以取得偵錯程式的詳細資訊。 自動化物件通常是從 『OnContextChanged』 自動化事件,或從 Debugger.CurrentStackFrame 屬性取得。 此 API 只會從 Visual Studio 的主線程正確運作。

Format(DkmInspectionSession, DkmFrameFormatOptions)

將 DkmStackWalkFrame 格式化為 DkmStackFrame。 格式化框架是堆疊提供者在 GetNextFrames 期間執行的一個步驟。 這個方法可用來以不同於 GetNextFrames 中的堆疊提供者原本所執行的方式來格式化框架。

位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。

(繼承來源 DkmStackWalkFrame)
GetClrGenericParameters()

取得目前堆疊框架的泛型參數,做為元件限定名稱的清單。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引進。

(繼承來源 DkmStackWalkFrame)
GetClrGenericParameters(DkmWorkList, DkmCompletionRoutine<DkmGetClrGenericParametersAsyncResult>)

取得目前堆疊框架的泛型參數,做為元件限定名稱的清單。

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

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引進。

(繼承來源 DkmStackWalkFrame)
GetEffectiveAddresses(DkmInstructionAddress)

方法,會計算並傳回所要求位址的有效位址。 有效位址是指令操作數所代表的計算位址。 例如,在 x86 上,指令的格式可能是 dwordptr [esp-12]。 此操作數的有效位址將是從 esp 減去 12 的結果。操作數和有效位址的數目是特定架構。

位置條件約束:必須從 IDE 元件呼叫 API, (元件層級 > 100,000) 。

GetInspectionInterface(DkmInspectionSession, Guid)

GetInspectionInterface 可用來取得 ICorDebugFrame 或其他元件可用來深入檢查堆棧框架的實作特定介面。

傳回的介面只能用來檢查目標進程,而且絕對不要用來控制執行 (不執行、沒有斷點、沒有繼續等) 。 不支援這麼做,而且會導致未定義的行為。 注意:基於效能考慮,不建議從 Managed 程式代碼使用此方法。 原生和 Managed 程式代碼之間的 DkmStackWalkFrame 封送處理成本很高。 請改用 DkmRuntimeInstance.GetFrameInspectionInterface。

位置條件約束:必須從目標運行時間實作堆疊逐步解說的相同進程或載入符號的相同進程呼叫此 API。 針對 Managed 偵錯,這表示偵錯 64 位或遠端進程時,必須從偵錯監視器元件呼叫此 API。

(繼承來源 DkmStackWalkFrame)
GetInstructionSymbol()

傳回堆疊框架的 DkmInstructionSymbol。 如果堆疊框架沒有指令位址 (批註框架) ,或指令位址沒有相關聯的 DkmModule,則 GetInstructionSymbol 會在機器碼) 傳回 null (S_FALSE。

(繼承來源 DkmStackWalkFrame)
GetProperty(ICorDebugValue, String)

評估指定 ICorDebugValue 上的屬性。 值的類型必須由 DkmStackWalkFrame 的 DkmClrAppDomain 載入,此$Name$ 被呼叫。

位置條件約束:這必須位於遠端,因為我們正在傳遞 ICorDebugHandleValue。

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

(繼承來源 DkmStackWalkFrame)
GetUnwindAddress(DkmInstructionAddress)

傳回地址,這個位址表示要攔截到此框架的例外狀況時的位置。

(繼承來源 DkmStackWalkFrame)
InterceptCurrentException(DkmExceptionInterceptActionFlags, UInt64)

InterceptCurrentException 可用來回溯至此畫面,就像該畫面上有例外狀況處理程序一樣。

(繼承來源 DkmStackWalkFrame)
OnSetNextStatementCompleted(DkmInstructionAddress)

OnSetNextStatementCompleted 是一種一般用途的方法,可讓元件在設定下一個語句完成之後清除狀態。 DkmStackWalkFrame 將會是 SetNextStatement 呼叫之前的框架。

位置條件約束:此 API 通常只能從用戶端元件呼叫。 不過,如果從事件處理程式呼叫 set next 語句,則監視端元件可以安全地呼叫此 API。

(繼承來源 DkmStackWalkFrame)
SetNextStatement(DkmInstructionAddress)

SetNextStatement 會移動堆疊框架的IP。 堆疊框架一律是特定線程上的分葉堆疊框架。

(繼承來源 DkmStackWalkFrame)

適用於