2008-09-24 4 views
2

새 프로세스를 시작하는 응용 프로그램을 디버깅하는 데 VS2008을 사용하고 있습니다. 나는 스폰 된 프로세스가 시작하는 동안 어떤 종류의 CLR 예외를 겪고 있다고 생각하지만 디버그 -> 예외에서 CLR 예외 알림을 켜서 잡히지는 않습니다. 예외가 생성 된 곳을 어떻게 볼 수 있는지에 대한 제안 사항은 무엇입니까? 나는 정상적으로 새로 생성 된 프로세스에 붙일 것이지만, 예외가 시작될 때부터 시작하기 때문에 충분한 시간이 없다.스폰 된 프로세스에서 예외 잡기

+0

프로세스가 시작된 후 곧바로 실패합니다. 실패한 프로세스에 대한 코드가 있지만 예외를 catch하고 처리하기 때문에 발생한 위치를 파악하는 데 문제가 있습니다. – PeterAllenWebb

답변

5

프로세스 시작 코드에서 Debugger.Launch()에 대한 호출을 추가 할 수 있습니다. 그러면 프로세스에 연결된 디버거 (일반적으로 실행중인 VS2008 복사본 또는 새 복사본 사용)가 시작됩니다. 같은 트릭이 서비스 시작 문제를 디버깅하는 데 편리합니다.

+0

달콤한. 나는 그것을 시도 할 것이다. – PeterAllenWebb

+0

좋은 것. 고려 upvoted !! – Craig

0

시작하는 동안 프로세스가 실패하면 CreateProcess는 오류 코드를 반환해야합니다. 오류 코드를 확인하십시오.

프로세스가 바로 시작 후, 프로세스 반환 코드를 확인 실패하면

, 그 문서, 로그 등

0

그럼 당신은 오류를 기록 할 수있다. 하지만 그건 당신이 그것을 보지 못하게합니다. 이를 위해 예외 처리기에 심각한 지연 (또는 infinte 루프)을 두는 것을 고려할 수 있습니다. 그러면 프로세스에 연결하고 디버깅해야하는 모든 시간을 얻을 수 있습니다. 그냥 당신이 생산에 들어갈 beofre 제거 있는지 확인하십시오!

0

이 프로세스 코드를 제어 할 수 있으면 Debugger.Launch()를 사용하십시오.

그냥 명령 줄에서이 프로세스를 시작하고 출력을 참조하십시오

그렇지 않으면,보십시오. 처리되지 않은 예외가 있으면 해당 예외가 표시됩니다.

아무 것도 표시되지 않으면 command line debugger을 사용하고 ca [tch] 명령을 사용하십시오.

1

또 다른 유용한 트릭은 "이미지 파일 실행 옵션"을 사용하는 것입니다. blogs.msdn.com : http://blogs.msdn.com/greggm/archive/2005/02/21/377663.aspx에서이 게시물을 살펴보십시오. 어린이 실행 파일이나 부모 파일을 변경할 필요가 없으므로 실행 파일.

관련 문제