ブレークポイントに関連するメソッド
デバッグ エンジン (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 のメソッド (あるいは両方) を実装する必要があります。