次の方法で共有


IDebugSymbols2::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 バッファーは、この構造体を保持するのに十分な大きさである必要があります。 ScopeContext が NULL 場合、代わりに現在の レジスタ コンテキスト が使用されます。

[in] ScopeContextSize

ScopeContext バッファーのサイズを指定します。

戻り値

このメソッドは、エラー値を返す場合もあります。 詳細については 戻り値の を参照してください。

リターン コード 形容
S_OK
InstructionOffsetScopeFrame、および ScopeContext で識別されるスコープは、古いスコープと同じです。
S_FALSE
スコープが変更されました。

備考

InstructionOffset のみが指定されている場合は、スコープを使用してシンボル名を検索できます。ただし、これらのシンボルの値は使用できません。

スコープを以前の状態に設定するには、ScopeContext 指定する必要があります。 これは必ずしも必要であるとは限りません (たとえば、登録せず、シンボルにのみアクセスする場合など)。 現在のスタックのフレームにスコープを設定するには、SetScopeFrameByIndex 使用できます。

スコープの詳細については、「スコープとシンボル グループの」を参照してください。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー dbgeng.h (Dbgeng.h を含む)

関連項目

GetScope する

IDebugSymbols

IDebugSymbols2 する

IDebugSymbols3

ResetScope

SetScopeFrameByIndex