런타임 아키텍처를 사용하여 DE(디버그 엔진) 구현 전략을 결정합니다. 디버깅 중인 프로그램에 대한 인프로세스(in-process) 디버그 엔진을 생성할 수 있습니다. Visual Studio SDM(세션 디버그 관리자)에 대한 디버그 엔진 in-process를 만듭니다. 또는 두 가지 모두를 위해 디버그 엔진을 별도의 프로세스로 생성합니다. 다음 지침은 이러한 세 가지 전략 중에서 선택하는 데 도움이 됩니다.
Guidelines
DE가 SDM과 디버깅 중인 프로그램 모두와 별도의 프로세스로 존재할 수 있지만, 일반적으로 그렇게 할 이유는 없습니다. 프로세스 경계를 넘나드는 호출은 비교적 느립니다.
디버그 엔진은 Win32 네이티브 런타임 환경 및 공용 언어 런타임 환경에 이미 제공됩니다. 두 환경 중 하나에 대해 DE를 교체해야 하는 경우 SDM을 사용하여 DE In-process를 만들어야 합니다.
그렇지 않으면 SDM에 대한 DE In-process를 만들거나 디버깅 중인 프로그램에 대한 in-process를 만듭니다. DE의 식 계산기에서 프로그램 기호 저장소에 자주 액세스해야 하는지 고려해야 합니다. 또는 빠른 액세스를 위해 기호 저장소를 메모리에 로드할 수 있는 경우 또한 다음 방법을 고려합니다.
식 계산기와 기호 저장소 간에 호출이 많지 않거나 기호 저장소를 SDM 메모리 공간으로 읽을 수 있는 경우 SDM에 대한 DE in-process를 만듭니다. 프로그램에 연결할 때 디버그 엔진의 CLSID를 SDM에 반환해야 합니다. SDM은 이 CLSID를 사용하여 DE의 In-process 인스턴스를 만듭니다.
DE에서 기호 저장소에 액세스하기 위해 프로그램을 호출해야 하는 경우 프로그램을 사용하여 DE in-process를 만듭니다. 이 경우 프로그램은 DE의 인스턴스를 만듭니다.