我有一个 Web 应用程序,在正常交互过程中,它会挂起 IE。我所说的“IE 被挂起”是指 IE 不再响应并使用 100% 的 CPU。摆脱这种状态的唯一方法就是终止 IE 进程。关于该应用程序:
- 它仅在浏览器中加载一页,通过 Ajax 查询与服务器通信,并更新 DOM。
- 我可以使用 IE6 和 IE7 重现此内容,但不能使用 Firefox 或 Safari。
我想知道是否有人已经看到过这一点,以及是否有一些已知的情况可以使 IE 进入挂起/使用 100% CPU 状态。
使用WinDbg,http://www.microsoft.com/whdc/devtools/debugging/
将其附加到有问题的 IE 进程。
.symfix+ 命令会将符号路径设置为指向 Microsoft 符号服务器并在本地缓存调试符号。
!runaway 命令将枚举进程中的所有堆栈并告诉您哪一个将要狂暴。
如果幸运的话,您可能会看到一些可识别的内容,例如堆栈顶部的正则表达式替换。或者布局引擎可能已经进入无限循环。这两件事过去都发生在我身上。
如果调用堆栈没有意义,请使用“g”使进程继续运行,等待几秒钟,按 Ctrl+Break,然后再次尝试 !runaway。
一旦您在本地获得了符号,您还可以使用 SysInternals 的 Process Explorer 查看进程的堆栈。在 Process Explorer 中配置“符号”选项以指向本地符号缓存,例如 c:\Program Files\Debugging Tools for Windows\sym。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)