共用方式為


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

另請參閱

IDataModelScriptDebugStackFrame 介面