다음을 통해 공유


IDataModelScriptDebugStackFrame::GetTransition 메서드(dbgmodel.h)

지정된 스택 프레임이 IsTransition 메서드에 의해 결정된 전환 지점인 경우(전환 지점 정의에 대한 설명서 참조) GetTransition 메서드는 전환에 대한 정보를 반환합니다. 특히 이 메서드는 이 IDataModelScriptDebugStackFrame을 포함하는 스택 세그먼트가 나타내는 스크립트를 호출한 이전 스크립트를 반환합니다.

이전 스크립트에 대한 IDataModelScript 인터페이스를 반환하는 것 외에도 이 호출은 전환이 연속인지 여부를 확인하려고 시도해야 합니다. 연속 전환은 한 스크립트/공급자가 다른 스크립트/공급자를 직접 호출하는 전환입니다(스크립트 컨텍스트 간의 통신을 용이하게 하기 위해 프록시/스텁 코드가 존재할 수 있는 모든 것을 무시). 연속되지 않은 전환은 중간 코드(네이티브 또는 검색할 수 없는 다른 스크립트/공급자)가 있는 위치입니다.

연속 전환 스택의 예(모든 속성이 동일한 개체의 확장)입니다.

  • [Script1] get firstProperty() { return 42; }
  • (Script2에서 Script1로 전환하기 위한 마샬링 또는 프록시/스텁 코드)
  • [Script2] get secondProperty() { return this.firstProperty(); }

두 개의 서로 다른 스크립트 공급자(JavaScript 1개와 Python 1개)를 상상하는 연속되지 않은 전환 스택(모든 속성이 동일한 개체의 확장)의 예입니다.

  • (JavaScript) [Script1] get firstProperty() { return 42; }
  • (IntermediateScript에서 Script1로 전환하기 위한 마샬링 또는 프록시/스텁 코드)
  • (Python) [IntermediateScript get intermediateProperty() { return this.firstProperty; }
  • (Script2에서 IntermediateScript로 전환하기 위한 마샬링 또는 프록시/스텁 코드
  • (JavaScript) [Script2] get secondProperty() { return this.intermediateProperty; }

두 번째 경우, 상상된 JavaScript 디버거의 디버거는 완전히 다른 스크립트 공급자(여기서는 상상된 Python 공급자)이므로 firstProperty 가져오기 및 get intermediateProperty에 대한 가시성 없이 secondProperty를 가져올 수 있습니다. 스크립트 디버거는 GetTransition 메서드에서 스크립트1에서 Script2로의 전환이 연속적이지 않은 전환임을 나타낼 수 있습니다.

전체 디버그 인터페이스가 상상된 Python 부분에 대한 정보를 함께 연결할 수 있는 경우 이렇게 합니다. 상상된 JavaScript 공급자는 불연속성을 나타냅니다.

구문

HRESULT GetTransition(
  IDataModelScript **transitionScript,
  bool             *isTransitionContiguous
);

매개 변수

transitionScript

디버거는 여기에서 이전 스크립트를 반환합니다. 이전 스크립트는 이 IDataModelStackDebugFrame을 포함하는 스택 세그먼트가 나타내는 스크립트로 호출된 스크립트입니다.

isTransitionContiguous

전환이 연속인지 여부를 나타내는 표시는 여기에 반환됩니다.

반환 값

이 메서드는 성공 또는 실패를 나타내는 HRESULT를 반환합니다.

요구 사항

요구 사항
헤더 dbgmodel.h

추가 정보

IDataModelScriptDebugStackFrame 인터페이스