IDataModelScriptDebugStackFrame::GetTransition 方法 (dbgmodel.h)
如果指定的堆疊框架是由IsTransition方法所決定的轉換點(請參閱該處的轉換點定義檔),GetTransition 方法會傳回轉換的相關信息。 特別是,這個方法會傳回先前的腳本-- 對包含此 IDataModelScriptDebugStackFrame 之堆棧區段所表示之腳本進行呼叫的腳本,。
除了傳回先前腳本的 IDataModelScript 介面之外,此呼叫還應該嘗試判斷轉換是否連續。 連續轉換是一個連續轉換,其中一個腳本/提供者直接呼叫另一個腳本/提供者(忽略任何 Proxy/存根程序代碼可能存在,以促進腳本內容之間的通訊)。 非連續轉換是中繼程式代碼 -- 原生或另一個無法偵測到的腳本/提供者之間的轉換。
連續轉換堆疊的範例(其中所有屬性都是相同物件上的延伸模組):
- [Script1] get firstProperty() { return 42; }
- (封送處理或 Proxy/存根程式代碼從 Script2 轉換至 Script1)
- [Script2] get secondProperty() { return this.firstProperty(): }
非連續轉換堆疊的範例(其中所有屬性都是相同物件上的延伸模組),我們想像兩個不同的腳本提供者 -- 一個 JavaScript 和一個 Python:
- (JavaScript)[Script1] get firstProperty() { return 42; }
- (封送處理或 Proxy/存根程序代碼,以從 IntermediateScript 轉換至 Script1)
- (Python)[IntermediateScript get intermediateProperty() { return this.firstProperty; }
- (封送處理或 Proxy/存根程序代碼,以從 Script2 轉換至 IntermediateScript
- (JavaScript)[Script2] get secondProperty() { return this.intermediateProperty; }
在第二個案例中,想像中的 JavaScript 調試程式的調試程式完全有可能看到 get firstProperty 並取得 secondProperty,而無法看到取得 intermediateProperty,因為它是完全不同的腳本提供者(這裡想像的 Python)。 腳本調試程式可能會在 GetTransition 方法中指出,轉換是從 Script1 轉換為 Script2 做為非連續轉換。
如果整體偵錯介面能夠將想像的 Python 部分的資訊拼湊在一起,則會這麼做。 想像中的 JavaScript 提供者只是表示不連續。
語法
HRESULT GetTransition(
IDataModelScript **transitionScript,
bool *isTransitionContiguous
);
參數
transitionScript
調試程式會在這裡傳回先前的腳本。 上一個腳本是呼叫至包含此 IDataModelStackDebugFrame 之堆棧區段所表示之腳本的腳本。
isTransitionContiguous
此處會傳回轉換是否連續的指示。
傳回值
此方法會傳回 HRESULT,指出成功或失敗。
要求
要求 | 價值 |
---|---|
標頭 | dbgmodel.h |