1

在 Node.js 中,我试图获取脚本中调用的每个函数的行号。有没有办法生成脚本中调用的每个函数的摘要?我想获取脚本中每个函数调用的行号列表,以便我可以注释掉其中一个函数调用(我仍在尝试查找。)

一个例子:

function printStuff(){
    console.log("This is an example.");
}
printStuff();
printStuff();

现在我想得到这个脚本中所有事件的摘要(不修改脚本)。它可能看起来像这样:

calling printStuff at line 4
calling console.log at line 2
calling printStuff at line 5
calling console.log at line 2

是否有任何测试/调试工具可以做到这一点?

4

1 回答 1

4

我猜这并不完全是您要寻找的东西,但您应该能够根据需要对其进行修改:

Object.defineProperty(global, '__stack', {
  get: function(){
    var orig = Error.prepareStackTrace;
    Error.prepareStackTrace = function(_, stack){ return stack; };
    var err = new Error;
    Error.captureStackTrace(err, arguments.callee);
    var stack = err.stack;
    Error.prepareStackTrace = orig;
    return stack;
  }
});

Object.defineProperty(global, '__line', {
  get: function(){
    return __stack[1].getLineNumber();
  }
});

console.log("I am running from line " + __line);

在这里讨论过

于 2012-10-20T08:34:38.970 回答