2012-02-10 4 views
2

닫을 때 충돌이 발생하고 무슨 일이 일어나는지 DebugDiag를 사용하려고하는 .NET 응용 프로그램이 있다고 가정 해 봅니다. 그래서 덤프 파일을 만들어야합니다. 내 질문은 언제 우리가이 덤프 파일을 만들 것인가? 응용 프로그램을 시작할 때 만들어야합니까? 음, 나는 덤프 파일이 임시 위치에 생성되었다고 말했을 때 ... 좋아, 그럼 계속해서 응용 프로그램을 작동시키고 충돌시키지 만, 혼란스러워서 덤프 파일을 매우 일찍 만들었지 만 결국 충돌이 발생했기 때문에 덤프 파일도 도움이 될 수 있습니까? 그 응용 프로그램과 함께 작업하면 자동으로 업데이트되는 걸 좋아합니까?언제 디버깅을 위해 DUMP 파일을 캡처해야합니까?

답변

3

크래시 (일반적으로 처리되지 않은 예외)의 경우 예외가 두 번째 예외가 될 때 덤프 파일을 만들어야합니다. DebugDiag에 익숙하지 않지만 adplus (Windows 용 디버깅 도구) 및 ProcDump와 같은 도구를 사용하면이 덤프를 만들 수 있습니다.

첫 번째 예외 예외에 대한 덤프를 만들 수도 있습니다 (즉, 코드에서 예외를 처리하기 전에). 예 : 충돌을 일으키는 예외가 다른 예외를 감싸는 경우에는 그 시점에서 충분한 정보가 없을 수 있습니다. 이 경우 첫 번째 예외시 덤프 파일을 작성하면 원래 예외 상황에 대한 자세한 정보가 제공됩니다.

1

프로세스가 충돌 할 때 덤프 파일을 만들도록 Windows를 구성 할 수 있습니다. 이 기능은 기본적으로 활성화되어 있지 않습니다 (Collecting User-Mode Dumps). 이 프로세스는 Windows XP에서 다릅니다 : Capturing Application Crash Dumps. 덤프 파일을 가지고 나면 WinDbg으로 조사 및 조사를 열 수 있습니다. 블로그 글을 Tess Fernandez 및이 book으로 크게 추천합니다.

+0

"이 기능은 .NET 응용 프로그램을 포함하여 자체적 인 사용자 정의 충돌보고를 수행하는 응용 프로그램을 지원하지 않습니다."라고 말합니다. ... 그리고 내 응용 프로그램은. NET 애플 리케이션, 그래서 그것을 사용할 수 없다는 뜻입니까? – Bohn

+1

당신은 .NET 응용 프로그램이 일반적으로 처리되지 않은 예외 처리기 (http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx)를 사용하게 될 가능성이 높습니다. .NET 환경에서 네이티브 덤프. – Dmitry

+0

흠 .. 이상한데, 기사에 의하면 HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ Windows 오류보고 ..하지만 upto \ Windows 경로가 있기 때문에 레지스트리에 Windows 오류보고 폴더가없는 것 같습니다. 네가 나 혼자서 만들 수 있다고 생각하니? – Bohn

관련 문제