33

複雑な JavaScript アプリ (jQuery と Ember を使用) では、ページの読み込み中またはページでアクションを実行するときに、JavaScript がランダムにクラッシュすることがあります。エラーは次のとおりです (スクリーンショット):

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

...数ページのClass.protoスタックトレース行がありますが、トレースの下部であっても、ソース/行情報はまったくありません。

これが無限再帰を指していることはわかっています。これはおそらくイベント システムで発生する可能性がありますが、明確な出発点はありません。

Chrome 安定版や Firefox ではなく、Chrome Canary (22.0.1209.0) でのみこれを再現できました。アプリは外部サービスと通信しておらず、Ajax リクエストも行っていません。

まれにしか発生せず、原因が特定できず、使用可能なスタック トレースがないため、原因を追跡するのに苦労しています。

私の質問:この問題をデバッグするにはどうすればよいですか?

4

1 に答える 1

21

Chrome 開発者ツールバーで「例外でブレーク」を有効にします。[ソースこれがアイコンです] タブのツールバーのフッターにあるこのアイコンを使用します (3 つの状態があります!)

コードが停止し、スタックが表示されます。

于 2012-07-18T15:22:24.517 に答える