서비스 디버그

다음 방법 중 하나를 사용하여 서비스를 디버그할 수 있습니다.

  • 디버거를 사용하여 서비스를 실행하는 동안 디버그합니다. 먼저 서비스 프로세스의 PID(프로세스 식별자)를 가져옵니다. PID를 가져온 후 실행 중인 프로세스에 연결합니다. 구문 정보는 디버거에 포함된 설명서를 참조하세요.

  • DebugBreak 함수를 호출하여 Just-In-Time 디버깅을 위해 디버거를 호출합니다.

  • 프로그램을 시작할 때 사용할 디버거를 지정합니다. 이렇게 하려면 다음 레지스트리 위치에 이미지 파일 실행 옵션 이라는 키를 만듭니다.

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

    서비스와 이름이 같은 하위 키를 만듭니다(예: MYSERV.EXE). 이 하위 키에 debugger라는 REG_SZ 형식의 값을 추가합니다. 디버거의 전체 경로를 문자열 값으로 사용합니다. 서비스 제어판 애플릿에서 서비스를 선택하고 시작을 클릭하고 서비스가 데스크톱과 상호 작용하도록 허용을 검사. 서비스는 대화형 서비스여야 합니다. 그렇지 않으면 디버거를 기본 데스크톱에서 실행할 수 없습니다. 모든 서비스는 서비스에만 예약되어 있고 사용자 인터페이스 표시를 지원하지 않는 세션에서 실행되므로 이 기술은 Windows Vista에서 더 이상 지원되지 않습니다.

  • 이벤트 추적을 사용하여 정보를 기록합니다.

자동 시작 서비스의 초기화 코드를 디버그하려면 서비스를 일시적으로 설치하고 수요 시작 서비스로 실행해야 합니다.

때로는 디버깅을 위해 서비스를 콘솔 애플리케이션으로 실행해야 할 수 있습니다. 이 시나리오에서 StartServiceCtrlDispatcher 함수는 ERROR_FAILED_SERVICE_CONTROLLER_CONNECT 반환합니다. 따라서 이 오류가 반환될 때 서비스별 코드가 호출되지 않도록 코드를 구성해야 합니다.

서비스 애플리케이션 디버깅

Windows용 디버깅 도구