Presentation is loading. Please wait.

Presentation is loading. Please wait.

( Windows Service Application Debugging )

Similar presentations


Presentation on theme: "( Windows Service Application Debugging )"— Presentation transcript:

1 ( Windows Service Application Debugging )
(금) Presenter 박상진 바이러스 체이서(VirusChaser 실시간 감시 드라이버팀 개발자) 핵심 검색 단어 ( Keywords ) 1. Visual Studio Windows 서비스 응용 프로그램 디버깅 2. Windows 서비스 디버깅 3. Microsoft CLR Debugger 4. 비주얼 스튜디오 디버깅 방법 5. 디버깅 테크닉

2 디버그( Debug ) 오류 수정 프로그램과 그 작업을 통칭하는 말 디버깅( Debugging ) 작업에 중점을 둔 어휘 디버거( Debugger ) 프로그램의 오류를 발견하고 그 원인을 밝히는 작업 또는 그 프로그램.

3 .NET 환경(Visual Studio 2005 버전)
Visual C++ 6.0 Windows 서비스 프로그램의 디버깅 Build > Start Debug > Attach to Process... 실행 방법 .NET 환경(Visual Studio 2005 버전) [그림 1] [그림 2]

4 주의 사항 서비스로 돌릴 프로젝트를 Debug 모드로 컴파일하고, 생성된 .exe 파일을 SCM(Service Control Manager)를 통해서 서비스 실행 서비스로 돌릴 프로그램 소스코드에서 Break point 설정 디버그 > 프로세스에 연결.. 실행중인 서비스 프로세스와 연결해서 디버깅 한다. * 서비스 프로그램은 SCM 에 의해서 실행되므로 디버깅이 안된다. -> 일반 응용 프로그램 처럼 -> 바로 실행 하지 않기 때문에 디버깅이 안된다. -> 그러므로 서비스 프로그램을 먼저 돌려놓고 -> Visual Studio .NET Tool 에서 디버그 > 프로세스 연결… 을 통해서 디버깅 가능하다. 이러한 이유로, Main 또는 OnStart 프로시저에서 코드를 디버그 할 수 없다. (소스 참고로 이해할 것 !!)

5 Main() OnStart 프로시저

6 주의 Sleep() 함수 사용할 것 !! Sleep() 함수를 사용하여 SCM(Service Control Manager)에 의해 실행된 서비스 프로그램 내의 디버깅할 Breakpoint 부분을 지나지 않게 해야 한다. 서비스 프로그램 소스 내에 Sleep() 함수를 넣어주어야 한다.

7 서비스 실행 프로그램 Main() 함수

8 첨가 Sleep() 함수 Break point 지정

9 서비스 프로그램의 디버깅이 가능하다

10 서비스 프로그램 실행 과정 Windows 서비스 응용 프로그램을 디버깅 할 때, 서비스와 SCM(Service Control Manager) 는 상호 작용합니다. -> SCM 은 -> OnStart() 를 호출하여 -> 서비스를 시작한 다음 -> OnStart() 가 반환될 때까지 30초를 기다립니다. -> 시간 안에 함수가 반환되지 않으면 -> SCM 은 서비스를 시작할 수 없다는 오류를 표시합니다. OnStart() 를 디버깅할 때는, 이 30초라는 시간에 유의 -> OnStart() 에 Break point 를 설정한 경우 -> 단계별 코드 실행이 30초 안에 이 함수까지 도달하지 않으면 SCM 에서 서비스를 시작하지 않는다.


Download ppt "( Windows Service Application Debugging )"

Similar presentations


Ads by Google