我想在 V8 中动态挂钩有关当前执行功能的信息。
例如函数名称,行号或文件名等
当页面或应用程序在其中运行时,V8是否可以设置一些断点来获取此信息?
例如:
< script >
function f1() {
...
f2();
...
}
function f2() {
...
}
f1();
< /script>
&#13;
执行f1()时,获取f1的函数名称和亚麻布;然后f1()调用f2(),f2()正在执行,获取f2的函数名称和亚麻布;最后,当f2()完成后,回到f1(),得到f1()的函数名和亚麻布。
这就是我所说的&#34;有关V8&#34;中当前执行功能的信息。
答案 0 :(得分:1)
您可以使用新的Error()。stack然后解析输出。
(function() {
var b = function() {
var trace = new Error().stack.split("\n")[1];
console.log(trace);
};
var a = function() {
b();
};
a();
})();
输出:
at b (file:///home/inonit/tmp/stack.html:6:16)
如果您愿意,可以从那里提取文件名,功能名称,行号和列号。