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 |