Проблема с определением стековых потоков заключается в том, что иногда трассировка стека раскручивается, и вы не сможете увидеть, что на самом деле происходит.
Я нашел некоторые из более новых инструментов отладки Chrome, полезные для этого.
Нажмите Performance tab
, убедитесь, что Javascript samples
включены, и вы получите что-то вроде этого.
Совершенно очевидно, где переполнение здесь!Если вы нажмете extendObject
, вы сможете увидеть точный номер строки в коде.
Вы также можете увидеть время, которое может или не может быть полезным, или красная сельдь.
Еще один полезный трюк, если вы не можете найти проблему, - это поместить множество операторов console.log
там, где вы думаете, что проблема.Предыдущий шаг, описанный выше, может помочь вам в этом.
В Chrome, если вы неоднократно выводите идентичные данные, он будет отображаться так, как показано, где проблема более ясна.В этом случае стек пробил 7152 кадра, прежде чем окончательно рухнул: