다음을 통해 공유


Active Directory 확장 디버깅

이 항목에 설명된 Microsoft Active Directory 디렉터리 서비스 속성 시트, 상황에 맞는 메뉴 및 개체 만들기 마법사 확장은 COM in-proc 서버로 구현됩니다. 즉, 각 확장은 호스트 프로세스의 컨텍스트에서 실행되는 DLL입니다. 확장을 디버그하려면 확장을 애플리케이션과 연결하고 디버거에서 애플리케이션을 실행해야 합니다.

Windows 셸에 표시된 Active Directory 확장 디버깅

Windows 셸에 표시되는 Active Directory 확장은 Explorer.exe 프로세스의 컨텍스트에서 로드됩니다. 이러한 확장은 표준 셸 확장처럼 디버그할 수 있습니다. 셸 확장을 디버깅하는 방법에 대한 자세한 내용은 셸을 사용하여 디버깅을 참조하세요.

Active Directory MMC Snap-Ins 표시된 Active Directory 확장 디버깅

Active Directory 관리 MMC 스냅인에 표시되는 Active Directory 확장은 Microsoft 관리 콘솔의 컨텍스트에서 로드됩니다. 확장을 디버그하려면 로컬 시스템에서 Mmc.exe 찾아 디버깅을 위한 애플리케이션으로 사용하도록 디버거를 설정합니다. 대부분의 시스템에서 Mmc.exe Windows 시스템 디렉터리(예: C:\WINNT\System32)에 있습니다. 디버거에 따라 디버거에서 로드할 확장 DLL을 설정하거나 설정하지 않을 수 있습니다. 또한 많은 디버거를 사용하여 실행 중인 MMC 프로세스에 디버거를 연결할 수 있습니다. 자세한 내용은 디버거 사용자 가이드를 참조하세요.

MMC가 특정 스냅인을 자동으로 로드하도록 하는 것이 편리할 수 있습니다. 이렇게 하려면 애플리케이션 인수를 MSC 파일의 경로 및 파일 이름으로 설정합니다. 시스템 설치 MSC 파일 또는 만든 파일일 수 있습니다. MSC 파일은 다음 단계에 따라 만들 수 있습니다.

  1. Mmc.exe 실행합니다.
  2. MMC 메뉴에서 파일 - 추가/제거 스냅인... 을 선택하여 원하는 스냅인을 로드하고 원하는 스냅인을 선택합니다.
  3. MMC 메뉴에서 파일다른 이름으로 저장...을 선택하여 MSC 파일을 - 저장합니다.

시작 MSC 파일을 설정하지 않은 경우 디버거에서 애플리케이션을 실행할 때 원하는 스냅인을 수동으로 로드해야 합니다.

호스트 애플리케이션이 디버거에서 실행될 때 디버거는 실행 중인 애플리케이션에 디버그 기호가 포함되어 있지 않다는 경고 메시지를 표시할 수 있습니다. 이는 예상되며 호스트 애플리케이션이 아닌 DLL을 실제로 디버깅하기 때문에 무시해도 됩니다.

대부분의 경우 사용자가 확장을 로드하고 초기화하는 일부 작업을 수행할 때까지 확장이 호출되지 않습니다. 예를 들어 사용자 개체에 대해 표시되는 상황에 맞는 메뉴 확장을 디버깅하는 경우 사용자 개체의 상황에 맞는 메뉴가 처음 표시될 때까지 확장이 로드되지 않습니다.

이제 중단점을 설정하고 디버그 출력을 볼 수 있습니다. 확장이 로드되지 않는 경우 확장의 DllGetClassObject 함수에서 중단점을 설정합니다. DllGetClassObject가 호출되지 않으면 확장이 올바르게 등록되지 않았을 수 있습니다.

디버그가 완료되면 MMC를 종료하고 디버거는 정상적으로 언로드해야 합니다.