JavaScript堆栈跟踪被截断

时间:2019-01-09 01:29:48

标签: 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)
}

1 个答案:

答案 0 :(得分:1)

您可以分配给stackTraceLimit构造函数的Error属性,默认为10:

function blowUp(n) {
    if(n > 100) { 
        throw new Error('x') 
    } else { 
        blowUp(n+1) 
    }
}

try {
    Error.stackTraceLimit = 20;
    blowUp(0)
} catch(e) {
    console.log(e.stack)
} finally {
    Error.stackTraceLimit = 10;
}