2013-10-03 2 views
1

Я пытаюсь понять, почему приложение рушится на конкретной машине.Как определить причину аварии с выхода windbg?

При сбое приложения он говорит, что модуль неисправности kernel32.dll.

Просмотреть результаты ниже windbg. Кажется, что он сбой при вызове MyClass.Start.

Как я могу более подробно описать причину аварии?

ModLoad: 69840000 69a05000 C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Web.Services\b66225f7bf51912a34f21181b36f800f\System.Web.Services.ni.dll 
ModLoad: 68180000 68cdc000 C:\Windows\assembly\NativeImages_v2.0.50727_32\System.Web\88803928914c8cc4b21ca1ad19f3d40f\System.Web.ni.dll 
ModLoad: 6e0c0000 6e0d0000 Microsoft.ReportViewer.ProcessingObjectModel.dll 
ModLoad: 10840000 10850000 Microsoft.ReportViewer.ProcessingObjectModel.dll 
ModLoad: 6e0c0000 6e0d0000 C:\Windows\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel\8.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.ProcessingObjectModel.dll 
ModLoad: 10890000 109af000 vbc.exe 
ModLoad: 6e500000 6e646000 C:\Windows\SysWOW64\browseui.dll 
ModLoad: 6ed70000 6eda0000 C:\Windows\SysWOW64\DUser.dll 
ModLoad: 6e010000 6e020000 MyDll.dll 
ModLoad: 101e0000 101f0000 MyDll.dll 
ModLoad: 6e010000 6e020000 C:\Program Files (x86)\AppName\MyDll.dll 
ModLoad: 69690000 69835000 C:\Windows\assembly\NativeImages_v2.0.50727_32\Microsoft.VisualBas#\268869655c671d09c3af0f81165da32e\Microsoft.VisualBasic.ni.dll 
03/10/2013 21:49:50: MyClass.Start: started 
(1b48.1b84): CLR exception - code e0434f4d (first chance) 
(1b48.1b84): CLR exception - code e0434f4d (first chance) 
(1b48.1b84): CLR exception - code e0434f4d (first chance) 
(1b48.1b84): CLR exception - code e0434f4d (first chance) 
(1b48.1b84): CLR exception - code e0434f4d (first chance) 
(1b48.1b84): CLR exception - code e0434f4d (first chance) 
(1b48.1b84): CLR exception - code e0434f4d (!!! second chance !!!) 
eax=109cf4c0 ebx=e0434f4d ecx=00000001 edx=00000000 esi=109cf548 edi=19033980 
eip=7575d8cb esp=109cf4c0 ebp=109cf510 iopl=0   nv up ei pl nz ac pe nc 
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b    efl=00000216 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Windows\syswow64\kernel32.dll - 
kernel32!RaiseException+0x59: 
7575d8cb c9    leave 
0:027> g 
WARNING: Continuing a non-continuable exception 
(1b48.1b84): Break instruction exception - code 80000003 (first chance) 
eax=00000001 ebx=00000000 ecx=00000000 edx=109cf4ec esi=00000000 edi=746a4bd4 
eip=77ba0004 esp=109cf04c ebp=109cf4f8 iopl=0   nv up ei pl nz na po nc 
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b    efl=00000202 
ntdll!DbgBreakPoint: 
77ba0004 cc    int  3 
0:027> 

Вот выход из !printexception:

Exception object: 0934bc08 
Exception type: System.InvalidOperationException 
Message: Invoke or BeginInvoke cannot be called on a control until the window handle has been created. 
InnerException: <none> 
StackTrace (generated): 
    SP  IP  Function 
    10DCF63C 715FE2AF System_Windows_Forms_ni!System.Windows.Forms.Control.MarshaledInvoke(System.Windows.Forms.Control, System.Delegate, System.Object[], Boolean)+0x85997f 
    10DCF6DC 70DA4830 System_Windows_Forms_ni!System.Windows.Forms.Control.BeginInvoke(System.Delegate, System.Object[])+0x50 
    10DCF710 10BC8E2D Microsoft_ReportViewer_WinForms!Microsoft.Reporting.WinForms.ReportViewer.OnRenderingComplete(Microsoft.Reporting.WinForms.ProcessThreadResult, Microsoft.Reporting.WinForms.PostRenderArgs)+0x5d 
    10DCF72C 10BC8DB9 Microsoft_ReportViewer_WinForms!Microsoft.Reporting.WinForms.ProcessThreadArg.OnComplete(Microsoft.Reporting.WinForms.ProcessThreadResult)+0x11 
    10DCF734 10BC4EB3 Microsoft_ReportViewer_WinForms!Microsoft.Reporting.WinForms.ProcessingThread.ProcessThreadMain(System.Object)+0x38b 
    10DCF790 739838E2 mscorlib_ni!System.Threading.ThreadHelper.ThreadStart_Context(System.Object)+0x72c8b2 
    10DCF79C 7326051F mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x6f 
    10DCF7B4 7375D43A mscorlib_ni!System.Threading.ThreadHelper.ThreadStart(System.Object)+0x4a 

StackTraceString: <none> 
HResult: 80131509 

ответ

2

Kernel32.dll где воспитываются СЬК исключения (это исключение, который поднял к внешнему неуправляемому миру на любой исключение в приложении CLR), и именно поэтому среда выполнения рассматривает ее как причину проблемы, но, конечно, это не так.

Если вы можете запустить Windbg на целевой машине и подключиться к процессу, который использует эту DLL, есть довольно отличная статья here, которая показывает, как вы можете разбить исключение и увидеть фактическую трассировку стека для исключения + распечатать некоторые детали этого, это должно помочь точно определить часть вашего управляемого кода, который падает.

1

Результат показывает управляемое исключение в потоке 1b48.1b84. Команда !threads из SOS/PSSCOR показывает исключения для каждого потока.

Результат также указывает, что вы в данный момент находитесь на нисходящей нити, поэтому !printexception (также из SOS/PSSCOR) предоставит вам управляемое исключение в этом потоке.

+0

См. Мое редактирование на вопрос. Я добавил вывод из '! Printexception'. Означает ли это проблему с «ReportViewer»? – CJ7

+0

Это показывает, что у вас есть InvalidOperationException, и сообщение сообщает вам, почему это происходит в целом. Поскольку я не знаю вашего кода, я не могу сказать вам конкретной причины. Возможно, вы захотите проверить исключение первого шанса, чтобы получить дополнительные сведения. –

Смежные вопросы