在复杂的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请求。
由于它只是偶尔发生,并且没有明显的原因,而且由于没有可用的堆栈跟踪,我无法追查原因。
我的问题:如何调试此问题?
答案 0 :(得分:19)
在Chrome开发者工具栏中启用“中断例外”。在来源标签上的工具栏页脚中使用此图标(有3种状态!)
它应该停止你的代码,你可以看到堆栈!