나는 무작위 적으로 충돌하는 .NET 응용 프로그램을 개발 중입니다. 그것은 처리되지 않은 예외를 던지고있는 것으로 의심되는 관리되지 않는 DLL에 대한 참조를 가지고 있습니다. 디버거가 연결되지 않은 경우 응용 프로그램이 충돌, 나는이 메시지를받을 때 (컴파일 등 클릭 한 번) :CLR에서 처리하지 않는 예외를 디버그하는 방법
하는 시점에서 디버거로 VS2012를 연결하고 호출 스택 볼 수 있습니다
을> ntdll.dll!77e015de() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!77e015de() Unknown
ntdll.dll!77e8861b() Unknown
ntdll.dll!77eae656() Unknown
ntdll.dll!77eae6d3() Unknown
ntdll.dll!77e573bc() Unknown
ntdll.dll!77e57261() Unknown
ntdll.dll!77e3b459() Unknown
ntdll.dll!77e3b42b() Unknown
ntdll.dll!77e3b3ce() Unknown
ntdll.dll!77df0133() Unknown
msvcr100.dll!71fb0269() Unknown
msvcr100.dll!71fb0146() Unknown
mfc100.dll!6c9e3bef() Unknown
kernel32.dll!76ba14dd() Unknown
msvcr100.dll!71fb016a() Unknown
mfc100.dll!6cbbb734() Unknown
DataRayOcx.ocx!095fe026() Unknown
kernel32.dll!76ba14dd() Unknown
msvcr100.dll!71fb016a() Unknown
mfc100.dll!6cbbb734() Unknown
mfc100.dll!6c9e3e62() Unknown
DataRayOcx.ocx!096018c4() Unknown
DataRayOcx.ocx!09603679() Unknown
msvcr100.dll!71ffc556() Unknown
msvcr100.dll!71ffc600() Unknown
kernel32.dll!76ba33aa() Unknown
ntdll.dll!77e19ef2() Unknown
ntdll.dll!77e19ec5() Unknown
스레드 :
Not Flagged 5732 0 Worker Thread msvcr100.dll thread
DataRayOcx.ocx!09664787 Highest
Not Flagged 5480 0 Main Thread Main Thread clr.dll!70903e82 Normal
Not Flagged 4408 0 Worker Thread MG17Comms.dll thread mfc100.dll!6cb8e160 Normal
Not Flagged > 4428 0 Worker Thread msvcr100.dll thread msvcr100.dll!71fb0269 Normal
Not Flagged 116 0 RPC Thread RPC Callback Thread 1714fee0 Normal
Not Flagged 5808 0 Worker Thread ntdll.dll thread ntdll.dll!77e01f26 Normal
Not Flagged 5372 0 Worker Thread clr.dll thread clr.dll!7082c3a6 Normal
Not Flagged 5112 0 Worker Thread clr.dll thread clr.dll!7099e9de Normal
Not Flagged 4928 0 Worker Thread clr.dll thread clr.dll!7090f1e3 Normal
Not Flagged 1380 0 Worker Thread clr.dll thread clr.dll!708219a3 Normal
Not Flagged 1632 0 Worker Thread OphirLMMeasurement.dll thread OphirLMMeasurement.dll!6ad4a94d Normal
Not Flagged 4324 0 Worker Thread MG17Core.dll thread MG17Motor.ocx!10034e20 Normal
Not Flagged 5048 0 Worker Thread clr.dll thread nipalu.dll!6459a78a Normal
Not Flagged 5028 0 Worker Thread clr.dll thread msvcr110_clr0400.dll!72a551ed Normal
Not Flagged 5556 0 Worker Thread clr.dll thread clr.dll!7099e9de Normal
Not Flagged 4708 0 Worker Thread clr.dll thread clr.dll!7099e9de Normal
Not Flagged 3352 0 Worker Thread clr.dll thread nipalu.dll!6459a78a Normal
Not Flagged 5256 0 Worker Thread clr.dll thread clr.dll!7099e9de Normal
Not Flagged 6032 0 Worker Thread clr.dll thread clr.dll!7099e9de Normal
Not Flagged 4692 0 Worker Thread OphirLMMeasurement.dll thread OphirLMMeasurement.dll!6add537a Normal
Not Flagged 6108 0 Worker Thread clr.dll thread clr.dll!7099e9de Normal
Not Flagged 1504 0 Worker Thread clr.dll thread clr.dll!7099e9de Normal
Not Flagged 1108 0 Worker Thread clr.dll thread clr.dll!7099e9de Normal
Not Flagged 4652 0 Worker Thread wdapi1031.dll thread wdapi1031.dll!11513a0b Normal
Not Flagged 2796 0 Worker Thread OphirLMMeasurement.dll thread OphirLMMeasurement.dll!6add5f80 Normal
Not Flagged 1036 0 RPC Thread RPC Callback Thread ole32.dll!76e7a44e Normal
Not Flagged 3424 0 Worker Thread clr.dll thread clr.dll!708d8274 Normal
Not Flagged 5424 0 Worker Thread clr.dll thread clr.dll!708f7bc5 Highest
Not Flagged 504 0 Worker Thread ntdll.dll thread ntdll.dll!77e0013d Normal
Not Flagged 2380 0 Worker Thread clr.dll thread clr.dll!70b10aed Normal
Not Flagged 3060 0 Worker Thread GdiPlus.dll thread GdiPlus.dll!7327795b Normal
Not Flagged 3672 0 Worker Thread clr.dll thread System.Windows.Forms.ni.dll!6ddfe8e1 Normal
Not Flagged 5268 0 Worker Thread msiltcfg.dll thread msiltcfg.dll!7371187a Normal
Not Flagged 1232 0 Worker Thread msvcr100.dll thread msvcr100.dll!71fb326f Normal
Not Flagged 5588 0 Worker Thread clr.dll thread clr.dll!7090fee1 Normal
Not Flagged 4080 0 Worker Thread clr.dll thread clr.dll!708598cd Normal
Not Flagged 5380 0 Worker Thread msvcr100.dll thread DataRayOcx.ocx!095cd1ed Normal
Not Flagged 5328 0 Worker Thread System.Data.dll thread System.Data.dll!7140b7fd Normal
Not Flagged 5744 0 Worker Thread AS5216.dll thread AS5216.dll!061d3e74 Normal
Not Flagged 2952 0 Worker Thread AS5216.dll thread AS5216.dll!061d01dd Above Normal
Not Flagged 3008 0 Worker Thread AS5216.dll thread AS5216.dll!061d8e2e Above Normal
Not Flagged 4728 0 Worker Thread clr.dll thread clr.dll!7090f1e3 Normal
Not Flagged 2972 0 Worker Thread clr.dll thread clr.dll!7099e9de Normal
Not Flagged 3804 0 Worker Thread nirpc.dll thread nirpc.dll!6460546a Normal
Not Flagged 6064 0 Worker Thread msvcr90.dll thread mxsout.dll!1b45be1b Normal
Not Flagged 3728 0 Worker Thread msvcr90.dll thread mxsout.dll!1b45bd23 Normal
Not Flagged 768 0 Worker Thread clr.dll thread clr.dll!7099e9de Normal
Not Flagged 6096 0 Worker Thread clr.dll thread clr.dll!70827f40 Normal
하지만 난 정말 읽을하는 방법을 모르겠어요. 첫 번째 줄 Not Flagged 5732 0 Worker Thread msvcr100.dll thread DataRayOcx.ocx!09664787 Highest
은 내가 그 구성 요소를 의심하게 만드는 가장 높은 우선 순위를가집니다.
: 단지 문제가 디버거 정보를 기반으로 무엇을 추측
'External component has thrown an exception.' in System.Windows.Forms.DispatchMessageW() as System.IntPtr
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Utilities.StartupForm.Main() in C:\...\Utilities\Forms\StartupForm.vb:line 102
외부는 예외의 유형을 디버깅 할 수있는 좋은 방법은 무엇입니까 ? 우리는 제 3 자 소프트웨어를 사용하고 있으므로, 구성 요소가 예외를 발생시킬 때이를 경고 할 수 있어야합니다 ...하지만 먼저 문제를 정확하게 식별해야합니다.
질문에 많은 유용한 정보가 없으므로 Microsoft Symbol 서버를 활성화하십시오. 그러나 이것이 DataRayOcx를 가리키고 있음을 분명히 알 수 있습니다. 이것은 호출 스택에서 직접 볼 수 있습니다. 또한 DispatchMessageW()가 충돌하게하는 종류의 컨트롤입니다. 이것을 디버깅하거나 수정할 수없고 소스 코드가 없습니다. 공급 업체 만이 문제를 해결할 수있는 작은 복제 프로그램을 제공 할 수 있습니다. –
@ 한스, 잠시 동안 DataRayOcx에 오류가있는 것으로 의심됩니다. 내 질문은 "나에게이 문제를 해결해주세요"와 같은 질문이지만, 그렇지 않습니다. CLR에서 처리하지 않는 예외를 디버깅하는 방법을 묻는 중 "이 예외 유형을 디버깅하는 좋은 방법은 무엇입니까?" 나는 그것을 고칠 수 없다. 나는 그 사실을 확실히 알고있다. 그러나 당신의 결론을 이끌어 낸 것은 정확히 무엇을 보았습니까? 그동안 Microsoft Symbol 서버를 사용할 수있게되었습니다. (그리고 How/Why/What가 무엇인지를 학습합니다.) – djv