如何记录所有函数调用?

时间:2018-03-05 16:05:45

标签: javascript debugging

当EDGE浏览器在一个大项目中崩溃时,我遇到了一个错误。我需要将所有函数调用记录到控制台,以查看最后调用的函数。然后调试它。

我尝试使用代码,但它只显示.call().apply()的调用,但不显示someFunction()。

var origApply = Function.prototype.apply;
var origCall = Function.prototype.call;

origApply.apply = origApply;
origCall.apply = origApply;

Function.prototype.toString.apply = origApply;
Array.prototype.slice.apply = origApply;
console.trace.apply = origApply;

function __logCall(t, a, finish) {
  var calledFn = Function.prototype.toString.apply(t, []).substr(0, 100);
  console.log("Calling", calledFn);

}

Function.prototype.call = function () {
  __logCall(this, arguments);
  return origCall.apply(this, arguments);
};

Function.prototype.apply = function () {
  __logCall(this, arguments);
  return origApply.apply(this, arguments);
}

你有什么想法吗?

0 个答案:

没有答案