当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);
}
你有什么想法吗?