我正在尝试在两个Google V8支持的环境(Thug和JS强制执行引擎)中检测JavaScript函数调用。基本上,当我使用JavaScript运行外部提供的HTML文件时,我希望每个API调用都能获得一行: -通话名称 -发送给通话的参数(如果有的话)
我目前可以通过执行以下操作来针对JavaScript全局方法(例如-eval(),decode(),encode())和各种DOM级方法(例如-document.createElement())执行此操作:>
var old_eval = eval;
function new_eval(foo0)
{
alert("INSTRUMENTATION: eval," + foo0);
return old_eval(foo0);
}
eval = new_eval;
我能够在自己的JavaScript文件中定义这样的方法,然后将该文件合并到V8运行时中。
这对于全局函数已经足够好了,但是对对象成员访问或对对象级方法的访问没有帮助(例如-somestring.indexOf())。
任何帮助将不胜感激!
答案 0 :(得分:1)
记录所有功能不直接支持V8中的事件。 您有两种选择:
选项2肯定会做更多工作。部分支持使用--log-function-events
记录函数的首次执行,但不包括API回调(例如DOM访问器和某些内置函数)。
正确支持记录所有函数调用在V8中是一项艰巨的任务,并且需要在代码库中打补丁。