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