Google Chrome: Comment déboguer aléatoire “Maximale de la pile d'appels de taille dépassait les erreurs”

Dans un complexe application JavaScript (avec jQuery et de Braise), le JavaScript parfois plantage aléatoire, soit pendant le chargement de la page ou lorsque j'effectue une action sur la page. L'erreur est comme suit (capture d'écran):

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

... avec plusieurs pages de Class.proto trace de la pile de lignes, mais pas de source/de l'information en ligne que ce soit, même au bas de la trace.

Je sais que c'points à une récursion infinie, ce qui pourrait éventuellement se produire dans le système d'événements, mais il n'y a pas de point de départ évident pour moi.

J'ai été en mesure de reproduire ce seulement en Chrome Canary (22.0.1209.0), pas de Chrome stable ou Firefox. L'application n'est pas en parlant à un service externe ou de faire une requête Ajax.

Comme il arrive seulement de temps en temps, et il est difficile d'établir la cause, et depuis il n'y a pas utilisable trace de la pile, je vais avoir du mal à suivre la cause.

Ma question: Que puis-je faire pour déboguer ce problème?

  • Vous avez probablement déjà réfléchi à cette, mais c'est seulement dans les Canaries construire pourrait-il être un Canari bug? Avez-vous essayé la bêta ou dev de chrome s'appuie pour voir si le problème se produit-il?
  • Vous pourriez identifier la problématique de la fonction dans le générateur de profils. Il doit être le plus long morceau.
  • Une grande chance, c'est un Canari de bug.
  • Permettre à "Briser sur les exceptions" (Cette icône developers.google.com/chrome-developer-tools/docs/...)
  • sur les exceptions" ne fonctionne pas pour moi (il n'a pas de pause, c'est juste envoyait le message d'erreur et s'arrête); je suis l'aide de la dernière version de Chrome.
InformationsquelleAutor Jo Liss | 2012-07-18