2011-01-28 11 views
0

.NET 3.5로 작성된 응용 프로그램이 있습니다. 당신이 볼 수 있듯이이 이벤트 표시기System.ArgumentNullException, P10 NIL 및 적절한 dmp 파일 위치?

======================== 

Event Type: Error 
Event Source: .NET Runtime 2.0 Error Reporting 
Event Category: None 
Event ID: 5000 
Date:  1/28/2011 
Time:  8:22:07 AM 
User:  N/A 
Computer: MGx12-Production 
Description: 
EventType clr20r3, P1 Sync.exe, P2 1.0.0.0, P3 4d42d290, P4 mscorlib, P5 2.0.0.0, P6 492b834a, P7 df, P8 b, P9 system.argumentnullexception, P10 NIL. 

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. 
Data: 
0000: 63 00 6c 00 72 00 32 00 c.l.r.2. 
0008: 30 00 72 00 33 00 2c 00 0.r.3.,. 
0010: 20 00 73 00 63 00 72 00 .s.c.r. 
0018: 65 00 65 00 6e 00 7e 00 e.e.n.~. 
0020: 31 00 2e 00 73 00 63 00 1...s.c. 
0028: 72 00 2c 00 20 00 31 00 r.,. .1. 
0030: 2e 00 30 00 2e 00 30 00 ..0...0. 
0038: 2e 00 30 00 2c 00 20 00 ..0.,. . 
0040: 34 00 64 00 34 00 32 00 4.d.4.2. 
0048: 64 00 32 00 39 00 30 00 d.2.9.0. 
0050: 2c 00 20 00 6d 00 73 00 ,. .m.s. 
0058: 63 00 6f 00 72 00 6c 00 c.o.r.l. 
0060: 69 00 62 00 2c 00 20 00 i.b.,. . 
0068: 32 00 2e 00 30 00 2e 00 2...0... 
0070: 30 00 2e 00 30 00 2c 00 0...0.,. 
0078: 20 00 34 00 39 00 32 00 .4.9.2. 
0080: 62 00 38 00 33 00 34 00 b.8.3.4. 
0088: 61 00 2c 00 20 00 64 00 a.,. .d. 
0090: 66 00 2c 00 20 00 62 00 f.,. .b. 
0098: 2c 00 20 00 73 00 79 00 ,. .s.y. 
00a0: 73 00 74 00 65 00 6d 00 s.t.e.m. 
00a8: 2e 00 61 00 72 00 67 00 ..a.r.g. 
00b0: 75 00 6d 00 65 00 6e 00 u.m.e.n. 
00b8: 74 00 6e 00 75 00 6c 00 t.n.u.l. 
00c0: 6c 00 65 00 78 00 63 00 l.e.x.c. 
00c8: 65 00 70 00 74 00 69 00 e.p.t.i. 
00d0: 6f 00 6e 00 20 00 4e 00 o.n. .N. 
00d8: 49 00 4c 00 0d 00 0a 00 I.L..... 
================================================ 

에서 다음과 같은 오류를 가지고,이 오류가 mscorlib에에서 일어나는 :이 응용 프로그램은 하나 (/ 우리가 일하는 것이 기대했던 것)을 제외한 모든 시스템에서 작동합니다. these instructions을 따르려고했지만 적절한 덤프 파일을 찾을 수없는 것 같습니다.

독자적으로 실행할 때 앱이 잘 실행된다고 언급해야합니다. 네이티브 윈도우 컨테이너에서 호출 될 때만 실패합니다! 그래서, 위에서 언급 한 방법은 실제로 나를 위해 일하지 않을 것입니다.

Windows 디버깅 도구를 설치했는데 %TEMP% 폴더에서 dmp 파일이 만들어지고 mscorlib에서 "nullpointer"를 일으키는 것을 디버깅하고 볼 수 있기를 기대할 수 있음을 알 수 있습니다. 불행히도이 dmp 파일은 다른 프로그램에서 사용 중이기 때문에 파일에 대한 액세스 권한이 없으면 (즉, 복사 또는 이름 바꾸기) 파일이 생성 된 후 몇 초 후에 삭제됩니다.

Windows보고 도구가 dmp 파일을 보관하는 곳을 아는 사람이 있습니까? 이 충돌에 대한 적절한 dmp 파일은 어디에서 찾을 수 있습니까?

어떻게 디버깅 할 수 있습니까?

답변

2

나는 Environment.FailFast 이상으로 미니 덤프를 생성하거나 보존하는 옵션을 알지 못합니다. this answer의 힌트를 사용하여 왓슨 로그를 리버스 엔지니어링 할 수 있습니다. 그러나 실제로, 그것은 고통스럽고 유익하지 않습니다. AppDomain.CurrentDomain.UnhandledException에 대한 이벤트 처리기를 작성하고 e.ExceptionObject.ToString() 값을 기록하거나 표시하십시오. 스택 추적은 거의 항상 문제를 파악하기에 충분합니다.

+0

안녕하세요, 귀하의 회신에 감사드립니다. 나는 이벤트 핸들러를 붙 였지만, 이것은 .net 런타임 에러이므로, 이벤트 핸들러는 작동하지 않을 것이다. 앱이 사용하는 com dll 중 하나 (예 : user32.dll)가 될 수 있다고 생각하기 시작했습니다. – Amir

+0

아니요, .NET Framework 코드에서 예외가 발생하더라도이 이벤트 *가 실행됩니다. 문제 해결에 도움이 필요하면 코드로 질문을 업데이트하십시오. –

+0

BEAUTIFUL !!!! , 고맙습니다!!!!!!! – Amir