2012-06-15 74 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