首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Silverlight5-调试npctrl.dll崩溃

Silverlight5-调试npctrl.dll崩溃
EN

Stack Overflow用户
提问于 2012-02-22 02:12:00
回答 5查看 4.9K关注 0票数 14

我得到了一个非常令人沮丧的silverlight插件崩溃,它同时影响IE和firefox。

事件日志中的错误为:

代码语言:javascript
复制
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,以获得更多信息:

代码语言:javascript
复制
(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除以0。我真的不知道如何进一步调试。我试着阅读了一些解释如何操作的文章--但我认为我受到了限制,因为ntdll.dll没有可用的符号。

如何缩小导致此错误的代码部分的范围?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-02-22 12:07:10

经过几个小时的调试,我能够在一个小项目中复制这个问题。只需创建一个“支持silverlight的web服务”,并引用它。然后切换到使用客户端http堆栈:

代码语言:javascript
复制
WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);

在我的机器上调用服务(以及同事)有大约10-15%的机会崩溃,并出现ntdll.dll错误。

我找到了两种方法来缓解这个问题。

1)停止使用客户端网络堆栈。这个问题似乎永远不会在浏览器堆栈中发生。

2)在VMWare外部访问silverlight应用程序。这个问题似乎只发生在虚拟机内部。感谢RobSiklos解决了这一问题。

希望这对某些人有帮助。

票数 13
EN

Stack Overflow用户

发布于 2012-08-03 17:25:47

将Vmware虚拟机设置为仅使用1个处理器,问题将不会重现。在屏幕顶部,Virtual Machine > Virtual Machine Settings > processor -> Number of processor cores = 1。

票数 5
EN

Stack Overflow用户

发布于 2012-03-22 05:01:41

您是否在vmware虚拟机中运行?查看此处:http://communities.vmware.com/thread/394306?tstart=0

更新(2013-03-15):根据上面链接的论坛帖子中的最新帖子,似乎微软终于解决了这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9382809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档