33

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

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

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

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

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

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

我的问题:我能做些什么来调试这个问题?

4

1 回答 1

21

在 Chrome 开发者工具栏中启用“异常中断”。在Sources选项卡的工具栏页脚中使用此这是图标图标(有 3 种状态!)

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

于 2012-07-18T15:22:24.517 回答