В JavaScript след

как получить backtrace в Javascript?

идеальные характеристики:

  • имя функции ввода или какой-либо значимый идентификатор для анонимных функций,
  • список аргументов на каждом уровне
  • номера строк.

можно ли это сделать в стандартном ECMAScript?

если нет, можно ли это сделать в обычный веб-браузер диалектов?

спасибо.

изменить --

спасибо предложения.

мой диалект не поддерживает arguments.caller или arguments.callee.

Я могу сделать это:

try {
    let x = null;
    x .foo ();
}
catch (e) {
        debug (dump (e.stack));
}

что дает мне информацию в виде строки, что хорошо для взгляда, но было бы большой помощью ходить e.stack. Имеет ли он стандартную форму?

еще раз спасибо.

4 ответов


может быть, это может помочь вам, не работал с ним:

эта ссылка больше не активна: kallewoof.com/2006/03/15/precompiling-javascript-functions/

также взгляните на это:

как вы узнаете функцию вызывающего абонента в JavaScript?


в моем опыте отладки я всегда использую это

(function () { console.log(new Error().stack); })();

эта ссылка может быть полезной :

http://snipplr.com/view/23047/javascript-backtrace-function/


это lib:stacktrace-js работает в любом месте, а не только с ошибками.

пример:

StackTrace.get()
    .then(stack => { console.log(stack) })
    .catch(err => { console.log(err) });