NT 서비스 프로그램의 디버깅
------------ 책에서 발췌 한 델파이 6 응용 프로그램 개발 안내서
서비스 프로그램을 디버깅하는 두 가지 방법이 있습니다. 첫 번째는 서비스의 작업 부분을 별도의 클래스에서 정의하고 별도의 프로그램으로 디버깅하는 것입니다. 두 번째 유형은 서비스가 실행될 때 디버그하는 것입니다. 첫 번째 접근 방식은 일반적인 프로그램에 서비스 작업을 담당하는 클래스를 추가하는 것이 서비스 동작을 테스트하고 워크 벤치 테스트 아이디어와 일관성을 유지하는 가장 쉬운 방법입니다.
우리는 첫 번째 방법을 사용하여 ServiceApp과 TestMailer의 두 가지 프로그램을 만들 때 테스트합니다 (이 책의 CD에서도 사용할 수 있음). 동일한 구성 요소 TidMessage, TTIMER 및 TIDSTMP를 별도의 프로그램에 추가하고 메일 발신자를 만듭니다. TestMailer 프로그램의 결함이 발견되면 모든 수정이 서비스 프로그램으로 업데이트됩니다. 워크 벤치 만들거나 프로그램 테스트는 쉽지만 항상 충분하지는 않습니다.
서비스 프로그램을 테스트하는 두 번째 방법은 서비스 프로그램을 설치하고 실행 한 다음 Delphi의 실행 프로세스에 첨부하는 것입니다. 다음 단계에 따라 서비스를 실행하는 동안 ServiceApp.exe 프로그램을 디버깅하십시오.
1. 서비스 프로그램을 설치하려면 serviceapp.exe /명령 줄에 설치하십시오.
2. 시작 | 제어판 |. MyService를 찾아서 시작 서비스 도구 모음 버튼을 클릭하십시오 (단계는 Windows 2000에 적용 가능하며 Windows NT4.0의 단계는 거의 동일합니다).
3. 델파이를 실행하십시오.
4. ServiceApp.dpr 프로젝트를로드하십시오.
5. 런 |.
6. 프로세스에 첨부 된 프로세스 대화 상자에서 (아래 그림과 같이) 시스템 프로세스 쇼 확인란을 선택하십시오.
7. serviceapp.exe를 찾아 첨부 버튼을 클릭하십시오.
8. Delphi에서 프로젝트 소스 파일의 OneCecute 이벤트 메소드에서 중단 점을 설정하고 F9를 누릅니다.
그림 B.3 프로세스에 연결하는 대화 상자는 델파이 디버거를 실행중인 프로세스에 연결하는 데 사용될 수 있습니다.
Delphi는 디버거를 실행중인 서비스 프로그램에 첨부하고 CPU 대화 상자를 엽니 다. 어셈블리 언어를 매우 원활하게 읽지 않으면 CPU 뷰는 그다지 유용하지 않습니다. 그러나 서비스 프로그램이 중단 점으로 실행되면 중단 점에서 중지되고 델파이 코드보기로 전환됩니다. 사용자가 Delphi를 통해 실행중인 서비스를 제어 한 후에는 다른 프로그램과 마찬가지로 서비스를 발전시키고 디버깅 할 수 있습니다.
참고 : 개발자는 PC에 관리자 권한이 있어야합니다. 놀랍게도 일부 조직은 개발자가 작성한 코드를 신뢰하지만 자체 PC를 관리 할 수는 없습니다. 현재의 경제 상황은 여전히 좋으므로 새로운 직업을 찾으십시오.
Delphi 도움말 문서는 권한이 충분하지 않으면 서비스 프로세스에 첨부가 실패 할 수 있다고 언급합니다. PC에 관리자 권한이있는 경우 첨부 된 서비스 프로세스는 항상 제대로 작동합니다. 도움말 주제 "디버깅 서비스"에는 레지스트리 설정 수정이 포함되는 서비스 디버그 서비스의 세 번째 방법이 포함되어 있으며 참조 할 수 있습니다.
Ye Zhengsheng
2005-05-22