【发布时间】:2012-03-12 01:45:34
【问题描述】:
我遇到了一个非常令人沮丧的 silverlight 插件崩溃,它同时影响了 IE 和 firefox。
来自事件日志的错误是:
Faulting application name: iexplore.exe, version: 9.0.8112.16421, time stamp: 0x4d76255d
Faulting module name: npctrl.dll, version: 5.0.61118.0, time stamp: 0x4ec5fc64
Exception code: 0xc0000094
Fault offset: 0x0001d720
Faulting process id: 0x434
Faulting application start time: 0x01ccf0b878b55ca7
Faulting application path: C:\Program Files (x86)\Internet Explorer\iexplore.exe
Faulting module path: c:\Program Files (x86)\Microsoft Silverlight\5.0.61118.0\npctrl.dll
Report Id: bd79af3d-5cab-11e1-8948-000c29de3e25
我已经在异常期间附加了 WinDbg 以获得更多信息:
(17e4.13f8): Break instruction exception - code 80000003 (first chance)
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Windows\SYSTEM32\ntdll.dll -
ntdll!DbgBreakPoint:
00000000`77810530 cc int 3
0:029> g
(17e4.1790): Integer divide-by-zero - code c0000094 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
*** ERROR: Symbol file could not be found. Defaulted to export symbols for NPCTRL.dll -
NPCTRL+0x1d720:
7b59d720 f7f1 div eax,ecx
好的,所以 ntdll.dll 被零除。我真的不知道如何进一步调试。我已经尝试查看一些解释如何的文章 - 但我认为我受到限制,因为 ntdll.dll 没有可用的符号?
如何缩小导致此错误的代码部分?
【问题讨论】:
-
我们能看到发生崩溃的代码吗?
-
不幸的是,我不确定是什么原因造成的。它有点随机 - 这意味着它可能是我的服务调用(利用 ChannelFactory
的代理类)的结果,也可能与我的布局/过渡动画有关。换句话说,你所问的正是我想要找出的:) -
如果您遇到除以零错误,您将不得不发布代码在代码中的某处您正在传递无效值,或者尝试转换或对无效值进行某种计算因为 DivideByZero 错误例如 1/0 将给出该错误..
-
我没有除以零 - ntdll.dll 是。事实上,我的申请根本没有分工。如果我实际上是除以零,我会在托管代码中得到 DivideByZeroException。事实并非如此。
-
注意,我在 MS Connect 上输入了这个错误:connect.microsoft.com/VisualStudio/feedback/details/731642/…
标签: c# .net silverlight crash