次の方法で共有


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

[in] ScopeContextSize

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

戻り値

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

リターン コード 説明
S_OK
InstructionOffsetScopeFrameScopeContext で識別されるスコープは、古いスコープと同じです。
S_FALSE
スコープが変更されました。

注釈

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

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

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

要件

要件
対象プラットフォーム デスクトップ
Header dbgeng.h (Dbgeng.h を含む)

こちらもご覧ください

GetScope

IDebugSymbols

IDebugSymbols2

IDebugSymbols3

ResetScope

SetScopeFrameByIndex