【发布时间】:2010-09-13 22:57:32
【问题描述】:
在 Firefox 中,我可以使用 exception.stack 获取异常的堆栈跟踪。
有没有办法在其他浏览器中也能做到这一点?
编辑:我实际上想自动保存堆栈跟踪(如果可能的话)而不是当时调试它(即我知道如何在调试器中获取堆栈跟踪)。
【问题讨论】:
标签: javascript exception
在 Firefox 中,我可以使用 exception.stack 获取异常的堆栈跟踪。
有没有办法在其他浏览器中也能做到这一点?
编辑:我实际上想自动保存堆栈跟踪(如果可能的话)而不是当时调试它(即我知道如何在调试器中获取堆栈跟踪)。
【问题讨论】:
标签: javascript exception
您必须尝试优秀的开源库TraceKit,它会尝试为所有主流浏览器中未处理的 JavaScript 异常创建堆栈跟踪。您可以阅读有关 Tracekit 的更多信息
https://github.com/csnover/TraceKit/
PS:如果您正在寻找具有良好 UI 的服务(使用 Tracekit),您可以尝试Atatus。
[披露]我在 Atatus 工作。
【讨论】:
如果你想要字符串堆栈跟踪,我会选择 insin 的答案:stacktrace.js。如果您想访问堆栈跟踪的各个部分(行号、文件名等)stackinfo,它实际上在后台使用了 stacktrace.js。
【讨论】:
【讨论】:
Error: ReferenceError: fdasmkl is not defined at <anonymous>:6:7 而不是 "Error: ReferenceError: fdasmkl is not defined at eval (eval at <anonymous> (:6:1), <anonymous>:1:1) at <anonymous>:6:1"
function foo() { fdasmkl } try { foo() } catch(e) { console.log(e.stack) }
Webkit 现在具有提供堆栈跟踪的功能:
Web Inspector: Understanding Stack Traces,由 Yury Semikhatsky 于 2011 年 4 月 20 日星期三上午 7:32 发布 (webkit.org)
来自那个帖子:
【讨论】:
不是真的,至少不容易。
在 IE 中,您可以使用 MS Script Debugger(由于某种原因是 Office 组件)或 Visual Studio 调试浏览器进程,然后您可以在断点处查看堆栈。
【讨论】: