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

指定范围当前指令的进程虚拟地址空间中的位置。 仅当 ScopeFrameScopeContext 均为 NULL 时,才使用此方法;否则,将忽略它。

[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 (包括 Dbgeng.h)

另请参阅

GetScope

IDebugSymbols

IDebugSymbols2

IDebugSymbols3

ResetScope

SetScopeFrameByIndex