2009-03-09 3 views
1

프로세스 종료시 dr 왓슨 크래시 대화 상자가 표시되는 경우가 있습니다. 이 프로세스는 .NET 2.0입니다. 대화 상자는별로 도움이되지 않습니다. 그것은 프로세스가 작동하지 않고 세부 사항에 있다고 말했습니다. 그것이 System.NullReferenceException에 관한 것이라는 것을 알 수 있습니다. 그렇지만 위의 추적은 어디에 있습니까?.NET 2.0 응용 프로그램 닫기시 dr watson crash 대화

일반적으로 .net 프로세스에 오류가있는 경우 traceback이 표준 오류로 인쇄됩니다. 그러나이 경우에는 프로세스가 종료 되었기 때문에 발생하지는 않습니다. 아무도 나를 줄 수 이 대화 상자가 때 충돌의 원인에 대한 자세한 정보를 얻으려면 포인터 가 나타났습니다?

답변

0

WinDBG를 사용하여 첨부합니다. 모든 경우에 관리되지 않는 코드에서 예외가 발생합니다.

+0

System.NullPointerException이라고 표시 되더라도? 경험에서 나온 – luntain

+0

; w3wp가 프로세스 요청 호출 (즉, 관리되는 예외 처리가없는) 외부에서 충돌 할 때 dr watson은 일반적으로 덤프를 수행하고 덤프를 만듭니다 (smacl과 마찬가지로 컴퓨터 구성에 따라 다름). windbg는 Visual Studio보다 일반적으로 더 나은 디버거 일뿐입니다. –

0

크래시를 재현 할 수있는 경우 응용 프로그램을 종료하기 전에 모든 예외 (기본 및 CLR 모두)를 중단하도록 디버거를 설정할 필요가 있습니다. 종종 충돌은 이전 오류로 인한 것일 수 있으므로 이것이 단서를 줄 수 있습니다.

Dr. Watson 덤프 파일을 살펴 보셨습니까? 이것들은 보통 어떤 모듈이 문제를 일으켰는지 적어도 알려줄 것입니다. 네이티브 코드를 다루는 경우 Dr. Watson이 제공 한 미니 덤프 파일을 Visual Studio에로드하고 디버그 심볼 파일과 소스 코드를 제공하면 해당 응용 프로그램의 상태를 확인할 수 있습니다. 충돌 시간, 문제가되는 스레드의 스택 호출 및 충돌을 일으킨 코드 행. 관리되는 코드에서 어떤 일이 발생하는지 전혀 모르지만 시도해 볼만한 가치가있을 수 있습니다.

이 링크를 클릭하면 파일 Link to CodeProject

+0

어디서이 미니 덤프를 찾을 수 있습니까? – luntain

+0

일반적으로 Microsoft에 오류보고 보내기를 클릭 할 때 생성됩니다. 보내려는 파일을 볼 수있는 옵션이 있어야하며 그 중 하나는 .dmp 확장자를 가져야합니다.이 파일을 다른 곳으로 복사하십시오. 결과가 MS로 전송 된 후 자동으로 삭제됩니다. –

+0

* .mdmp 일 수도 있습니다.이 링크는 미니 덤프 분석에 대한 몇 가지 정보를 제공합니다 : http://www.codeproject.com/KB/debug/postmortemdebug_standalone1 .aspx # _Creating_a_Minidump –

1

내가 dev에 기계에 disable Dr Watson하는 경향이 때 응용 프로그램 폭탄을 발사 가져옵니다 그냥 시간 디버거로 비주얼 스튜디오를 사용을 미니 덤프 분석에 대한 좀 더 많은 정보를 제공해야합니다. 이 방법은 특히 디버깅 정보를 사용할 수있는 경우 근본 원인 분석 측면에서 더 유용합니다.

0

프로덕션 서버에서 응용 프로그램을 디버그하려면 DILE을 사용합니다.

DOTNET IL 편집기 (DILE)의 .NET에게 소스 코드 또는 파일 .PDB 않고 ​​1.0/1.1/2.0/3.0/3.5 애플리케이션 분해 디버깅 허용한다. IL 수준의 자체 또는 .NET Framework 어셈블리도 디버깅 할 수 있습니다.

응용 프로그램이 중단되고 더 이상의 정보가없는 곳에서 여러 번 내 목숨을 구해 줬습니다. 그러나 Visual Studio 나 다른 도구에 액세스 할 수없는 상황에 대해서는 잘 알고 있어야합니다.

최신 버전에서도 덤프 파일을 읽을 수 있다고 생각합니다.