如何从JavaScript打印堆栈跟踪?
答案How can I get a Javascript stack trace when I throw an exception?涉及抛出异常,但我需要打印堆栈跟踪来调试内存泄漏。
基本上我与Get current stack trace in Java有相同的问题,但对于JavaScript。
而且How to print a stack trace in Node.js?类似,但它是Node.js,我想知道JavaScript,更一般地说,如果它不同。
答案 0 :(得分:11)
答案 1 :(得分:1)
documentation说可以通过以下方式完成:
const targetObject = {};
Error.captureStackTrace(targetObject);
targetObject.stack; // Similar to `new Error().stack`
此代码段在targetObject上创建一个.stack属性,该属性在访问时返回一个字符串,该字符串表示在代码中调用Error.captureStackTrace()
的位置。
答案 2 :(得分:0)
您可以通过创建错误并打印其stack
属性来获取堆栈跟踪。
print(Error().stack);
这与console.trace()
不同,即使在您的环境中console
类都不可用的情况下,它也适用于所有情况。 (当然,如果print
不可用,则可以使用console.log
或环境中的其他任何打印功能。)