javascript - 谷歌浏览器 : How to debug random "Maximum call stack size exceeded" errors

标签 javascript google-chrome

在复杂的 JavaScript 应用程序(使用 jQuery 和 Ember)中,JavaScript 偶尔会随机崩溃,无论是在页面加载期间还是当我在页面上执行操作时。错误如下(screenshot):

Uncaught RangeError: Maximum call stack size exceeded
  Class.proto
  Class.proto
  ...

...有几页 Class.proto 堆栈跟踪行,但没有任何源/行信息,即使在跟踪的底部也是如此。

我知道这指向无限递归,这可能会发生在事件系统中,但对我来说没有明显的起点。

只能在 Chrome Canary (22.0.1209.0) 中重现此内容,而不能在 Chrome 稳定版或 Firefox 中重现。该应用程序未与任何外部服务通信或发出任何 Ajax 请求。

因为它只是偶尔发生,没有明显的原因,而且没有可用的堆栈跟踪,所以我很难找到原因。

我的问题:我该怎么做才能调试这个问题?

最佳答案

在 Chrome 开发者工具栏中启用“Break on exceptions”。使用这个 This is the icon 选项卡上工具栏底部的图标(有 3 种状态!)

它应该停止你的代码,你可以看到堆栈!

关于javascript - 谷歌浏览器 : How to debug random "Maximum call stack size exceeded" errors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11544321/

相关文章:

javascript - 如何仅在 Blogger 的搜索页面中显示文本?

javascript - 为什么 Javascript 不重定向到生产服务器上的正确路径?

javascript - 使用 getter 和 setter 进行函数链接的方法

json - 使用 PowerShell 将 Chrome 书签导出到 CSV 文件

javascript - 重新加载时 jQuery position()/offset() 值错误(chrome)

javascript - 使用JS自动提交表单

javascript - 将处理程序附加到动态创建的元素..

javascript - 为什么在 Chrome Dev Console 上出现 "Uncaught ReferenceError: $ is not defined"错误?

javascript - chrome 通过远程调试检查闪烁

javascript - (点击)功能不会在 chrome angular 6 中触发