在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)
}

最佳答案

您可以分配给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;
}

10-06 05:14