Как увеличить количество записей стека вызовов в Google Chrome Developer Tools (или Firefox)? - PullRequest
39 голосов
/ 29 марта 2012

Как увеличить количество записей стека вызовов в Google Chrome Developer Tools (или Firefox Firebug)? Я получаю ошибку Javascript в Javascript стороннего элемента управления. Все вызовы в окне Call Stack не принадлежат моему собственному коду. Я хочу знать, какая строка в моем коде запускает последовательность событий. Стек вызовов недостаточно велик для отображения чего-либо из моего собственного кода.

Ответы [ 3 ]

27 голосов
/ 14 августа 2013

Раствор хрома

https://github.com/v8/v8/wiki/Stack%20Trace%20API

можно установить через командную строку при запуске --js-flags="--stack-trace-limit <value>"

или во время выполнения при загрузке страницы: Error.stackTraceLimit=undefined //unlimited stack trace

15 голосов
/ 18 апреля 2015

В Chrome (также в узле) вы можете ввести это в консоли js:

Error.stackTraceLimit = Infinity;

В качестве альтернативы см. Эту страницу для флагов командной строки Chrome: https://github.com/v8/v8/wiki/Stack%20Trace%20API (необходимо перезапустить Chrome):

$ google-chrome --js-flags="--stack-trace-limit 10000"
0 голосов
/ 30 марта 2012

Я не думаю, что есть ограничение на размер стека вызовов *). Обычно трассировка стека, которая, кажется, появляется из ниоткуда, получается либо из

  • прослушиватель событий
  • тайм-аут (window.setTimeout)
  • интервал (window.setInterval)
  • загрузка некоторых скриптов после загрузки страницы (возможно, iframe)

*) Конечно, технически, безусловно, есть некоторый предел, но я полагаю, что он практически не имеет значения. Вероятно, longint или что-то.


edit: From Исходный код Firebug :

    if (trace.frames.length > 100)  // TODO in the loop above
    {
        var originalLength = trace.frames.length;
        trace.frames.splice(50, originalLength - 100);
        var excuse = "(eliding "+(originalLength - 100)+" frames)";

        trace.frames[50] = new StackFrame.StackFrame({href: excuse}, 0, excuse,
            [], null, null, context);
     }

Таким образом, Firebug всегда будет показывать первые 50 и последние 50 элементов («кадров») стека вызовов.

...