IDebugSymbols::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
InstructionOffsetScopeFrame标识的范围,ScopeContext 与旧作用域相同。
S_FALSE
范围已更改。

言论

如果仅提供 InstructionOffset,则范围可用于查找符号名称;但是,这些符号的值将不可用。

若要将范围设置为以前的状态,必须提供 ScopeContext。 这并不总是必要的(例如,如果只想访问符号,而不是 寄存器)。 若要将范围设置为当前堆栈上的帧,可以使用 SetScopeFrameByIndex

有关范围的详细信息,请参阅 范围和符号组

要求

要求 价值
目标平台 桌面
标头 dbgeng.h (包括 Dbgeng.h)

另请参阅

GetScope

IDebugSymbols

IDebugSymbols2

IDebugSymbols3

ResetScope

SetScopeFrameByIndex