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] 取得 firstProperty () { return 42; }
- (封送處理或 Proxy/存根程序代碼,以從 IntermediateScript 轉換至 Script1)
- (Python) [IntermediateScript 取得 intermediateProperty () { return this.firstProperty; }
- (封送處理或 Proxy/存根程序代碼,以從 Script2 轉換為 IntermediateScript
- (JavaScript) [Script2] 取得 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 |