IE挂起,使用100%的CPU

ave*_*net 3 ajax internet-explorer internet-explorer-7 internet-explorer-6

我有一个Web应用程序,它在正常交互过程中挂起IE.通过"IE挂起",我的意思是IE不再响应并使用100%的CPU.唯一能摆脱这种状态的是杀死IE进程.关于应用程序:

  • 它只在浏览器中加载一个页面,与具有Ajax查询的服务器通信,并更新DOM.
  • 我可以使用IE6和IE7重现这一点,但不能使用Firefox或Safari.

我想知道是否有人已经看过这个,如果有一些已知的情况可以让IE进入这个挂起/使用100%的CPU状态.

Geo*_*lly 6

使用WinDbg,http://www.microsoft.com/whdc/devtools/debugging/

将它附加到有问题的IE进程.

.symfix +命令将您的符号路径设置为指向Microsoft符号服务器并在本地缓存调试符号.

!runaway命令将枚举进程中的所有堆栈,并告诉您哪个堆栈正在疯狂.

如果你很幸运,你可能会看到一些可识别的东西,例如堆栈顶部的正则表达式替换.或者布局引擎可能已进入无限循环.这些都发生在我身上.

如果callstack没有意义,请使用'g'进行处理,等待几秒钟,按Ctrl + Break,然后再试一次!再次失控.

一旦在本地获得了符号,您还可以使用SysInternals的Process Explorer来查看进程的堆栈.在Process Explorer中配置Symbols选项以指向本地符号缓存,例如c:\ Program Files\Debugging Tools for Windows\sym.