다음을 통해 공유


디버그 엔진 구현 전략 선택

런타임 아키텍처를 사용하여 DE(디버그 엔진) 구현 전략을 결정합니다. 디버깅 중인 프로그램에 대한 in-process 디버그 엔진을 만들 수 있습니다. Visual Studio SDM(세션 디버그 관리자)에 대한 in-process 디버그 엔진을 만듭니다. 또는 둘 모두에 대한 out-of-process 디버그 엔진을 만듭니다. 다음 지침은 이러한 세 가지 전략 중에서 선택하는 데 도움이 됩니다.

지침

DE가 디버깅 중인 SDM과 프로그램 모두에 대해 out-of-process가 될 수 있지만 일반적으로 그렇게 할 이유가 없습니다. 프로세스 경계 간 호출은 상대적으로 느립니다.

디버그 엔진은 Win32 네이티브 런타임 환경 및 공용 언어 런타임 환경에 이미 제공됩니다. 어느 한 환경에 대해 DE를 교체해야 하는 경우 SDM을 사용하여 in-process DE를 만들어야 합니다.

그렇지 않으면 SDM에 대한 in-process DE를 만들거나 디버깅 중인 프로그램에 대한 in-process를 만듭니다. DE의 식 계산기가 프로그램 기호 저장소에 자주 액세스해야 하는지 고려해야 합니다. 또는 빠른 액세스를 위해 기호 저장소를 메모리에 로드할 수 있는지를 고려해야 합니다. 또한 다음 방법도 고려합니다.

  • 식 계산기와 기호 저장소 간에 호출이 많지 않거나 기호 저장소를 SDM 메모리 공간으로 읽을 수 있는 경우 SDM에 대한 in-process DE를 만듭니다. 프로그램에 연결할 때 디버그 엔진의 CLSID를 SDM에 반환해야 합니다. SDM은 이 CLSID를 사용하여 DE의 in-process 인스턴스를 만듭니다.

  • DE가 기호 저장소에 액세스하기 위해 프로그램을 호출해야 하는 경우 프로그램을 사용하여 in-process DE를 만듭니다. 이 경우 프로그램이 DE의 인스턴스를 만듭니다.