2012-06-15 45 views

回答

2

的方法console.trace样子:

exports.trace = function(label) { 
    // TODO probably can to do this better with V8's debug object once that is 
    // exposed. 
    var err = new Error; 
    err.name = 'Trace'; 
    err.message = label || ''; 
    Error.captureStackTrace(err, arguments.callee); 
    console.error(err.stack); 
}; 

https://github.com/joyent/node/blob/master/lib/console.js#L61

因此,看来你不能设置痕迹深度。

4

您可以控制栈帧是多少通过设置变量

Error.stackTraceLimit 

它设置为0将禁用堆栈跟踪收集收集。任何有限的整数值将被用作要收集的最大帧数。将其设置为无穷大意味着将收集所有帧。

另一种选择是使用命令行标志--stack-trace-limit

node --stack-trace-limit=50 test.js 

参考文献:

http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi