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
为范围的当前指令指定进程的虚拟地址空间中的位置。 仅当 ScopeFrame 和 ScopeContext 都 NULL时,才使用此函数;否则,将忽略它。
[in, optional] ScopeFrame
指定范围的堆栈帧。 有关此结构的信息,请参阅 DEBUG_STACK_FRAME。
[in, optional] ScopeContext
指定范围的 线程上下文。 线程上下文的类型是目标有效处理器的 CONTEXT 结构。 缓冲区 ScopeContext 必须足够大才能保存此结构。 如果 ScopeContextNULL,则改用当前 注册上下文。
[in] ScopeContextSize
指定 scopeContext 缓冲区的大小。
返回值
此方法也可能返回错误值。 有关详细信息,请参阅 返回值。
返回代码 | 描述 |
---|---|
|
InstructionOffset、ScopeFrame标识的范围,ScopeContext 与旧作用域相同。 |
|
范围已更改。 |
言论
如果仅提供 InstructionOffset,则范围可用于查找符号名称;但是,这些符号的值将不可用。
若要将范围设置为以前的状态,必须提供 ScopeContext。 这并不总是必要的(例如,如果只想访问符号,而不是 寄存器)。 若要将范围设置为当前堆栈上的帧,可以使用 SetScopeFrameByIndex。
有关范围的详细信息,请参阅 范围和符号组。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | dbgeng.h (包括 Dbgeng.h) |