如何生成javascript stacktrace?

Kyl*_*yle 8 javascript stack-trace printstacktrace

有关如何以跨浏览器方式在javascript中生成堆栈跟踪的任何建议?

较新的浏览器Chrome和Firefox公开了一个允许生成堆栈跟踪的控制台对象.此方法不提供将堆栈跟踪存储到变量的方法.

https://github.com/eriwen/javascript-stacktrace 工作得非常好,但它会单独的ajax请求加载脚本文件作为跟踪的一部分.这似乎是跟踪库中的常用方法.我猜测浏览器没有公开足够的信息来生成有意义的堆栈跟踪(行号,函数名,文件名,参数等).

Vin*_*eib 2

创建一个 Error 对象并检查它的堆栈成员。改编自代码泛音

var e = new Error('dummy');
var stack = e.stack.replace(/^[^\(]+?[\n$]/gm, '') // remove lines without '('
  .replace(/^\s+at\s+/gm, '') // remove prefix text ' at '
  .split('\n');
console.log(stack);
Run Code Online (Sandbox Code Playgroud)

Error.stack 记录在Mozilla 的参考文档中。