2010-07-29 4 views
1

UI에서 버튼을 클릭하면 다른 프로세스가 시작되는 프로세스가 있습니다. 이렇게 생성 된이 프로세스는 경고 나 로그의 단서없이 종료됩니다.windbg를 사용하여 경고없이 종료되는 프로세스를 디버그합니다.

이 문제를 이해하려면 windbg를 어떻게 사용해야합니까? 또한 심볼 파일 경로에 무엇을 넣어야합니까? MS 심볼 서버에서 심볼을 다운로드하려면. env 변수를 설정해야하는지 잘 모르겠습니다.

감사

답변

1

여기에 기호를 찾는 방법은 다음과 같습니다 http://support.microsoft.com/kb/311503.

일반적으로이 작업을 수행하는 가장 쉬운 방법은 환경 변수를 설정하는 것입니다 : 마음에 당신이 환경 변수를 설정 한 후에

_NT_SYMBOL_PATH=SRV*c:\websymbols*http://msdl.microsoft.com/download/symbols 

당신이 Windbg에서 시작 있는지 확인하고 곰을 그 VS 최신 버전의 것 또한이 환경 변수를 사용하면 디버깅이 시작되는 속도가 느려지는 경향이 있습니다.

내 첫 번째 단계는 두 프로세스를 분리하여 시도하는 것입니다. 실패한 방식으로 실패한 방식으로 직접 시작할 수 있습니까? 메인 윈도우 설치 순서 덤비는

  • 스택 오버 플로우 (무한 재귀)
  • (때로는) 예외 핸들러에서 예외
  • :

    자동 끝내기은 종종 이들 중 하나의 표시이다 WPF 애플 리케이션에서.

+0

그냥 추가 : 심볼 경로가 설정되지 않은 WinDbg를 시작하면'.symfix' 명령을 사용하여 세션 중에 설정할 수 있습니다. –

1

windbg에서 현재 프로세스에 의해 생성되는 프로세스에 첨부 할 옵션을 설정하여 생성 된 프로세스에 연결할 수 있습니다. ".child_dbg 1"을 사용하십시오 (정확한 명령 이름에 대해서는 확실하지 않음). windbg에서 UI 프로세스를 시작한 후에는 평상시처럼 단추를 클릭하고 프로세스가 만들어 지도록하십시오. 이것은 windbg에서 깨어납니다. 일단 그렇게하면 "g"명령을 사용하여 프로세스를 계속 진행하십시오. 자식 프로세스가 종료 될 때마다 디버거에서 알림을 받게됩니다. 따라서 프로세스 종료의 원인을 파악할 수 있습니다.

그래도 도움이되지 않으면 (프로세스가 exitprocess를 사용하여 정상적으로 종료되거나 TerminateProcess를 사용하여 종료되는 경우) 종료 함수에 중단 점을 넣고 호출 스택을 확인할 수 있습니다.

0

여유가 있다면 http://support.microsoft.com을 통해 지원 티켓을여십시오. 지원 담당자는 필요한 정보를 캡처하는 방법에 대한 세부 단계를 제공 할 수 있습니다.

WinDbg를 사용하는 것은 그다지 간단하지 않습니다. 괜찮은 프로그래머가 아니라면 쉬운 방법을 택해야합니다.

관련 문제