次の方法で共有


ブレークポイントに関連するメソッド

デバッグ エンジン (DE) は、ブレークポイントの設定をサポートしている必要があります。 Visual Studio のデバッグでは、次の種類のブレークポイントがサポートされます。

  • Bound

    UI を通じて要求され、指定したコードの場所に正常にバインドされています。

  • 保留中

    UI を通じて要求されましたが、実際の命令にまだバインドされていません。

考察 (Discussion)

たとえば、保留中のブレークポイントが発生するのは、命令がまだ読み込まれていないときです。 コードが読み込まれると、保留中のブレークポイントは、指定された場所のコードにバインドしようとします。つまり、コードに中断命令を挿入しようとします。 イベントが、バインディングが成功したことを示すため、またはバインド エラーが発生したことを通知するために、セッション デバッグ マネージャー (SDM) に送信されます。

保留中のブレークポイントでも、対応するバインドされたブレークポイントの内部リストが管理されます。 1 つの保留中のブレークポイントによって、コード内に多数のブレークポイントが挿入されることがあります。 Visual Studio のデバッグ UI には、保留中のブレークポイントとそれに対応するバインドされたブレークポイントのツリー ビューが表示されます。

保留中のブレークポイントを作成および使用するには、IDebugEngine2::CreatePendingBreakpoint メソッドと、IDebugPendingBreakpoint2 インターフェイスの以下のメソッドの実装が必要です。

Method 説明
CanBind 指定された保留中のブレークポイントをコードの場所にバインドできるかどうかを判定します。
Bind 指定された保留中のブレークポイントを 1 つまたは複数のコードの場所にバインドします。
GetState 保留中のブレークポイントの状態を取得します。
GetBreakpointRequest 保留中のブレークポイントを作成するために使用されたブレークポイント要求を取得します。
有効にする 保留中のブレークポイントの有効化状態を切り替えます。
EnumBoundBreakpoints 保留中のブレークポイントからバインドされているすべてのブレークポイントを列挙します。
EnumErrorBreakpoints 保留中のブレークポイントが原因で発生したすべてのエラー ブレークポイントを列挙します。
削除 保留中のブレークポイントと、そこからバインドされているすべてのブレークポイントを削除します。

バインドされたブレークポイントとエラーのブレークポイントを列挙するには、IEnumDebugBoundBreakpoints2 および IEnumDebugErrorBreakpoints2 のすべてのメソッドを実装する必要があります。

コードの場所にバインドされる保留中のブレークポイントには、次の IDebugBoundBreakpoint2 メソッドの実装が必要です。

Method 説明
GetPendingBreakpoint ブレークポイントを含む保留中のブレークポイントを取得します。
GetState バインドされたブレークポイントの状態を取得します。
GetBreakpointResolution ブレークポイントを記述するブレークポイントの解決を取得します。
有効にする ブレークポイントを有効または無効にします。
削除 バインドされたブレークポイントを削除します。

解決および要求情報には、次の IDebugBreakpointResolution2 メソッドの実装が必要です。

Method 説明
GetBreakpointType 解決によって表されるブレークポイントの種類を取得します。
GetResolutionInfo ブレークポイントを記述するブレークポイントの解決情報を取得します。

バインド中に発生する可能性のあるエラーの解決には、次の IDebugErrorBreakpoint2 メソッドの実装が必要です。

Method 説明
GetPendingBreakpoint エラーのブレークポイントを含む保留中のブレークポイントを取得します。
GetBreakpointResolution エラーのブレークポイントについて記述しているブレークポイント エラー解決方法を取得します。

バインド中に発生する可能性のあるエラーを解決するには、次の IDebugErrorBreakpointResolution2 メソッドも必要です。

Method 説明
GetBreakpointType ブレークポイントの種類を取得します。
GetResolutionInfo ブレークポイントの解決情報を取得します。

ブレークポイントのソース コードを表示するには、IDebugStackFrame2:: GetDocumentContext のメソッドまたは IDebugStackFrame2:: GetCodeContext のメソッド (あるいは両方) を実装する必要があります。

関連項目