Подтвердить что ты не робот

Как увеличить количество записей в стеке вызовов в инструментах разработчика Google Chrome (или Firefox)?

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

4b9b3361

Ответ 1

Решение Chrome

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

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

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

Ответ 2

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

Error.stackTraceLimit = Infinity;

В качестве альтернативы см. эту страницу для флагов командной строки Chrome: https://v8.dev/docs/stack-trace-api (необходимо перезапустить Chrome):

$ google-chrome --js-flags="--stack-trace-limit 10000"

Ответ 3

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

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

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


Изменить: Из Исходный код 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 элементов ( "кадры" ) стека вызовов.