共用方式為


IDebugSymbols3::SetScope 方法 (dbgeng.h)

SetScope 方法會設定目前的範圍。

語法

HRESULT SetScope(
  [in]           ULONG64            InstructionOffset,
  [in, optional] PDEBUG_STACK_FRAME ScopeFrame,
  [in, optional] PVOID              ScopeContext,
  [in]           ULONG              ScopeContextSize
);

參數

[in] InstructionOffset

指定範圍目前指令之進程虛擬位址空間中的位置。 只有當 ScopeFrameScopeContextNULL時,才會使用這個值;否則會忽略它。

[in, optional] ScopeFrame

指定範圍的堆疊框架。 如需此結構的相關信息,請參閱 DEBUG_STACK_FRAME

[in, optional] ScopeContext

指定範圍 線程內容。 線程內容的型別是目標有效處理器的CONTEXT結構。 緩衝區 ScopeContext 必須夠大,才能保存這個結構。 如果 ScopeContextNULL,則會改用目前的 緩存器內容

[in] ScopeContextSize

指定 scopeContext 緩衝區的大小。

傳回值

這個方法也可能傳回錯誤值。 如需詳細資訊,請參閱 傳回值

傳回碼 描述
S_OK
InstructionOffsetScopeFrameScopeContext 所識別的範圍與舊範圍相同。
S_FALSE
範圍已變更。

言論

如果只提供 InstructionOffset,則可以使用範圍來查閱符號名稱;不過,這些符號的值將無法使用。

若要將範圍設定為先前的狀態,必須提供 scopeContext 。 這不一定是必要的(例如,如果您只想要存取符號,而不是 緩存器)。 若要將範圍設定為目前堆疊上的框架,可以使用 SetScopeFrameByIndex

如需範圍的詳細資訊,請參閱 範圍和符號群組

要求

要求 價值
目標平臺 桌面
標頭 dbgeng.h (include Dbgeng.h)

另請參閱

GetScope

IDebugSymbols

IDebugSymbols2

IDebugSymbols3

ResetScope

SetScopeFrameByIndex