次の方法で共有


IDataModelScriptDebugClient::NotifyDebugEvent メソッド (dbgmodel.h)

スクリプト デバッガーに中断するイベントが発生するたびに、デバッグ コード自体は NotifyDebugEvent メソッドを介してインターフェイスを呼び出します。 このメソッドは同期的です。 インターフェイスがイベントから戻るまで、スクリプトの実行は再開されません。 スクリプト デバッガーの定義は単純であることを目的としています。処理を必要とする入れ子になったイベントはまったくありません。

デバッグ イベントは、ScriptDebugEventInformation と呼ばれるバリアント レコードによって定義されます。 有効なイベント情報のフィールドは、主に DebugEvent メンバーによって定義されます。

ScriptDebugEvent 列挙型のメンバーによって説明されているように発生したイベントの種類を定義します。

Enumerant 形容
ScriptDebugBreakpoint ブレークポイントにヒットしたことを示します。 ヒットした特定のブレークポイントに関する情報は、次を含む共用体の BreakpointInformation 部分に含まれています: • BreakpointId: ヒットしたブレークポイントの一意識別子。
ScriptDebugStep ステップ イベントが発生したことを示します。 それ以上の情報は提供されません。
ScriptDebugException 例外が発生したことを示します。 発生した特定の例外に関する情報は、次を含む共用体の ExceptionInformaiton 位置に含まれています。 • IsUncaught: ブレークポイントが最初の確率 (false) であるか、ハンドルされない例外 (true) であるかを示します。 イベントのデータ オブジェクトは、スローされたオブジェクトです。
ScriptDebugAsyncBreak スクリプトへの非同期の中断が発生したことを示します。 これは、"エントリの中断" や "イベントの中断" などが原因である可能性があります。

インターフェイスは、デバッグ イベントから続行する方法を決定すると、resumeEventKind 引数を入力し、NotifyDebugEvent メソッドから正常に返します。 デバッガーの進め方は、このフィールドの値によって異なります。 これは、次のように定義された ScriptExecutionKind 列挙体のメンバーです。

Enumerant 形容
ScriptExecutionNormal インターフェイスがスクリプトを次のデバッグ イベントまで正常に実行することを示します。 これは、デバッガー UI の "go" コマンドに相当します。
ScriptExecutionStepIn インターフェイスがスクリプト デバッガーをステップインし、ステップインが正常に完了したときにインターフェイスに通知することを示します。 その他のイベントは中間で発生する可能性があることに注意してください。 その場合、ステップ通知がない可能性があります。
ScriptDebugStepOut スクリプト デバッガーがステップ アウトし、ステップ アウトが正常に完了したときにインターフェイスに通知するインターフェイスを示します。 その他のイベントは中間で発生する可能性があることに注意してください。 その場合、ステップ通知がない可能性があります。
ScriptDebugStepOver ステップ オーバーが正常に完了したら、インターフェイスでスクリプト デバッガーがステップ オーバーしてインターフェイスに通知することを示します。 その他のイベントは中間で発生する可能性があることに注意してください。 その場合、ステップ通知が存在しない可能性があります

構文

HRESULT NotifyDebugEvent(
  ScriptDebugEventInformation *pEventInfo,
  IDataModelScript            *pScript,
  IModelObject                *pEventDataObject,
  ScriptExecutionKind         *resumeEventKind
);

パラメーター

pEventInfo

発生したデバッグ イベントを示すデータ構造。

pScript

イベントが発生したスクリプト。

pEventDataObject

対象のイベントのデータ オブジェクト。 イベントにデータ オブジェクトがない場合は、nullptr が渡されます。 データ オブジェクトは、たとえば、例外通知のためにスローされた例外オブジェクトです。

resumeEventKind

デバッグ イベントの処理後にデバッガーがスクリプト コードの実行を再開する方法をインターフェイスからデバッガーに示します。 このような値は、前述のように ScriptExecutionKind 列挙体のメンバーとして返されます。

戻り値

このメソッドは、成功または失敗を示す HRESULT を返します。

必要条件

要件 価値
ヘッダー dbgmodel.h

関連項目

IDataModelScriptDebugClient インターフェイス