我在.NET 4.0中使用WebBrowser控件并且随机崩溃。虽然应用程序的使用完全相同,但应用程序崩溃的时间会有所不同。
以下是Windows提供的问题描述:
<EventType>APPCRASH</EventType>
<Parameter0>MyApp.vshost.exe</Parameter0>
<Parameter1>11.0.50727.1</Parameter1>
<Parameter2>5011d445</Parameter2>
<Parameter3>mshtml.dll</Parameter3>
<Parameter4>9.0.8112.16476</Parameter4>
<Parameter5>5126ee6c</Parameter5>
<Parameter6>c0000005</Parameter6>
<Parameter7>00262cd4</Parameter7>
如何调试此问题?我尝试打开转储文件,我得到的堆栈跟踪没什么用处(是吗?):
ntdll.dll!_NtRaiseException@12() + 0x12 bytes
ntdll.dll!_NtRaiseException@12() + 0x12 bytes
wininet.dll!_ResizeBuffer@12() + 0x40 bytes
mshtml.dll!RaiseFailFastExceptionFilter() + 0x24 bytes
mshtml.dll!GlobalWndProc() + 0x4562d bytes
msvcrt.dll!@_EH4_CallFilterFunc@8() + 0x12 bytes
ntdll.dll!ExecuteHandler2@20() + 0x26 bytes
ntdll.dll!ExecuteHandler@20() + 0x24 bytes
ntdll.dll!_RtlDispatchException@8() + 0xd3 bytes
ntdll.dll!_KiUserExceptionDispatcher@8() + 0xf bytes
mshtml.dll!CHtmParse::Prepare() + 0x2f bytes
mshtml.dll!CHtmPost::Broadcast() + 0xf bytes
mshtml.dll!CHtmPost::Exec() + 0xbd bytes
mshtml.dll!CHtmPost::RunNested() + 0x6e bytes
mshtml.dll!CHtmLoad::Write() + 0x165 bytes
mshtml.dll!CHtmCtx::Write() + 0x2a bytes
mshtml.dll!CDocument::write() + 0x185 bytes
mshtml.dll!Method_void_SAFEARRAYPVARIANTP() + 0x30 bytes
mshtml.dll!CBase::ContextInvokeEx() + 0x1e5 bytes
mshtml.dll!CBase::InvokeEx() + 0x2b bytes
mshtml.dll!DispatchInvokeCollection() - 0x166e80 bytes
mshtml.dll!CDocument::InvokeEx() + 0xcb bytes
mshtml.dll!CBase::VersionedInvokeEx() + 0x37 bytes
mshtml.dll!CBase::PrivateInvokeEx() + 0x4d bytes
mshtml.dll!CBase::varInvokeEx() + 0x44 bytes
jscript9.dll!HostDispatch::CallInvokeEx() + 0xca bytes
jscript9.dll!HostDispatch::InvokeMarshaled() + 0x3d bytes
jscript9.dll!HostDispatch::InvokeByDispId() + 0x1dc bytes
jscript9.dll!DispMemberProxy::DefaultInvoke() + 0x22 bytes
jscript9.dll!DispMemberProxy::DefaultInvoke() + 0x20 bytes
jscript9.dll!Js::JavascriptFunction::CallFunction() + 0x87 bytes
jscript9.dll!Js::InterpreterStackFrame::OP_CallFld() + 0x4d bytes
jscript9.dll!Js::InterpreterStackFrame::Process() - 0x190f7 bytes
jscript9.dll!Js::InterpreterStackFrame::ProcessThunk() + 0x65 bytes
jscript9.dll!Js::InterpreterStackFrame::InterpreterThunk() + 0x15c bytes
jscript9.dll!Js::JavascriptFunction::CallFunction() + 0x87 bytes
jscript9.dll!Js::JavascriptFunction::CallRootFunction() + 0xa9 bytes
jscript9.dll!ScriptSite::CallRootFunction() + 0x4f bytes
jscript9.dll!ScriptSite::Execute() + 0x5f bytes
jscript9.dll!ScriptEngine::ExecutePendingScripts() + 0xf328 bytes
jscript9.dll!ScriptEngine::ParseScriptTextCore() + 0x2d6 bytes
jscript9.dll!ScriptEngine::ParseScriptText() + 0x7a bytes
mshtml.dll!CActiveScriptHolder::ParseScriptText() + 0x3384 bytes
mshtml.dll!CScriptCollection::ParseScriptText() + 0x1fa bytes
mshtml.dll!CScriptData::CommitCode() - 0xfc bytes
mshtml.dll!CMarkup::CommitQueuedScripts() - 0x1c7625 bytes
mshtml.dll!CMarkup::CommitQueuedScriptsInline() - 0x18e954 bytes
mshtml.dll!CMarkup::UnblockScriptExecutionHelper() + 0x8d bytes
mshtml.dll!CMarkup::UnblockScriptExecution() + 0x63 bytes
mshtml.dll!CScriptData::EnsureScriptDownloadLeft() + 0x54 bytes
mshtml.dll!CScriptData::OnDwnChan() + 0x5a4 bytes
mshtml.dll!CScriptData::OnDwnChanCallback() + 0xe bytes
mshtml.dll!CDwnChan::OnMethodCall() + 0x1f bytes
mshtml.dll!GlobalWndOnMethodCall() + 0xf8 bytes
mshtml.dll!GlobalWndProc() + 0x451fa bytes
user32.dll!_InternalCallWinProc@20() + 0x23 bytes
user32.dll!_UserCallWinProcCheckWow@32() + 0xb7 bytes
user32.dll!_DispatchMessageWorker@8() + 0xed bytes
user32.dll!_DispatchMessageW@4() + 0xf bytes
[Managed to Native Transition]
WindowsBase.dll!System.Windows.Threading.Dispatcher.TranslateAndDispatchMessage(ref System.Windows.Interop.MSG msg) + 0x20 bytes
WindowsBase.dll!System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame frame = {System.Windows.Threading.DispatcherFrame}) + 0x94 bytes
WindowsBase.dll!System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame frame) + 0x37 bytes
WindowsBase.dll!System.Windows.Threading.Dispatcher.Run() + 0x20 bytes
PresentationFramework.dll!System.Windows.Application.RunDispatcher(object ignore) + 0x14 bytes
PresentationFramework.dll!System.Windows.Application.RunInternal(System.Windows.Window window) + 0x105 bytes
PresentationFramework.dll!System.Windows.Application.Run(System.Windows.Window window) + 0x24 bytes
PresentationFramework.dll!System.Windows.Application.Run() + 0x1c bytes
MyApp.exe!My.Namespace.App.Main() + 0x9c bytes
[Native to Managed Transition]
[Managed to Native Transition]
mscorlib.dll!System.AppDomain.nExecuteAssembly(System.Reflection.RuntimeAssembly assembly, string[] args) + 0x9 bytes
mscorlib.dll!System.AppDomain.ExecuteAssembly(string assemblyFile, System.Security.Policy.Evidence assemblySecurity, string[] args) + 0x61 bytes
Microsoft.VisualStudio.HostingProcess.Utilities.dll!Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() + 0x27 bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart_Context(object state) + 0x6f bytes
mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx