Javascript堆栈跟踪被截断
在node和chrome中,下面的代码只给了我10个堆栈帧,而我预期是100个。有没有办法把整叠纸都打印出来Javascript堆栈跟踪被截断,javascript,node.js,stack-trace,Javascript,Node.js,Stack Trace,在node和chrome中,下面的代码只给了我10个堆栈帧,而我预期是100个。有没有办法把整叠纸都打印出来 function blowUp(n) { if(n > 100) { throw new Error('x') } else { blowUp(n+1) } } try { blowUp(0) } catch(e) { console.log(e.stack) } 您可以分配给Error构造函数的s
function blowUp(n) {
if(n > 100) {
throw new Error('x')
} else {
blowUp(n+1)
}
}
try {
blowUp(0)
} catch(e) {
console.log(e.stack)
}
您可以分配给
Error
构造函数的stackTraceLimit
属性,该属性默认为10:
函数放大(n){
如果(n>100){
抛出新错误('x')
}否则{
放大(n+1)
}
}
试一试{
Error.stackTraceLimit=20;
放大(0)
}捕获(e){
console.log(e.stack)
}最后{
Error.stackTraceLimit=10;
}
您可以为Error
构造函数的stackTraceLimit
属性赋值,该属性默认为10:
函数放大(n){
如果(n>100){
抛出新错误('x')
}否则{
放大(n+1)
}
}
试一试{
Error.stackTraceLimit=20;
放大(0)
}捕获(e){
console.log(e.stack)
}最后{
Error.stackTraceLimit=10;
}
太好了,谢谢!知道为什么这么低吗?演出内存?可能,但也可能是因为错误源通常与抛出错误的帧距离不远。也许一个程序员需要经历10多个帧才能找到他们需要修复的东西(或者指向他们需要修复的东西)是不可能的。此外,当通常只需要几行时,巨大的堆栈跟踪会使输出更难读取。但那只是猜测。太好了,谢谢!知道为什么这么低吗?演出内存?可能,但也可能是因为错误源通常与抛出错误的帧距离不远。也许一个程序员需要经历10多个帧才能找到他们需要修复的东西(或者指向他们需要修复的东西)是不可能的。此外,当通常只需要几行时,巨大的堆栈跟踪会使输出更难读取。但这只是一个猜测。