共用方式為


IDataModelScriptDebugClient::NotifyDebugEvent 方法 (dbgmodel.h)

每當發生任何中斷至腳本調試程式的事件時,偵錯程序代碼本身就會透過 NotifyDebugEvent 方法呼叫介面。 這個方法是同步的。 在介面從 事件傳回之前,腳本不會繼續執行。 腳本調試程式的定義很簡單:絕對沒有需要處理的巢狀事件。

偵錯事件是由稱為 ScriptDebugEventInformation 的變體記錄所定義。 事件資訊中的哪些欄位有效,主要是由 DebugEvent 成員定義。

它會定義 ScriptDebugEvent 列舉成員所描述的事件種類:

列舉 描述
ScriptDebugBreakpoint 表示已叫用斷點。 所叫用之特定斷點的相關信息包含在聯集的 BreakpointInformation 部分,其中包含下列內容: • BreakpointId:已叫用之斷點的唯一標識符。
ScriptDebugStep 表示已發生步驟事件。 未提供進一步的資訊。
ScriptDebugException 表示發生例外狀況。 發生之特定例外狀況的相關信息包含在包含下列條件的 Union 的 ExceptionInformaiton 位置:• IsUncaught:指出斷點是否為第一次機會 (false) 或未處理的例外狀況 (true)。 事件的數據對像是擲回的物件。
ScriptDebugAsyncBreak 表示發生腳本的異步中斷。 這可能是因為「專案中斷」或「事件中斷」之類的專案

當介面決定如何從偵錯事件繼續時,它會填入 resumeEventKind 自變數,並從 NotifyDebugEvent 方法成功傳回。 調試程序的運作方式取決於此欄位中的值。 它是 ScriptExecutionKind 列舉的成員,定義如下:

列舉 描述
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 介面