共用方式為


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

另請參閱

IDataModelScriptDebugStackFrame 介面