use*_*232 8 javascript debugging stack-trace
我希望能够对给定的JS应用程序执行操作,然后只需获取已调用的所有函数的大型日志.这在Chrome中是可行的,但只有在某处放置断点时才有可能.我的问题是,当我对一个给定的网站进行逆向工程时(当然,仅用于自学教学目的),通常需要花费大量时间来确定从哪里开始.这样的事情会对我有很大的帮助,因为我不再需要在代码中搜索,而是我会做一个用户操作,然后抓住堆栈日志.
我想应该有一种方法来拦截(或包装)每个函数调用,以便在调用函数之前将其转储到日志中.
在 Firebug 中,您可以使用探查器来记录每个调用的函数。使用console.profile()
和console.profileEnd()
以编程方式触发它。
但是,这不会为您提供正确的堆栈跟踪。(你确定这就是你想要的吗?)
要记录特定对象的方法,您可以像这样覆盖它们:
for (var key in obj) {
if (typeof obj[key] == 'function') {
(function(){
var origFun = obj[key];
obj[key] = function () {
var result = origFun.apply(this, arguments);
console.log('call to method', key, 'with arguments', arguments,' - Result:', result);
// console.trace(); // for a trace with every call
return result;
};
})();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2120 次 |
最近记录: |