Javascript 如何获取当前函数';V8中的名称或行号
我想动态地钩住V8中当前正在执行的函数的信息 例如函数名、行号或文件名等 当页面或应用程序在其中运行时,V8是否可以设置一些断点来获取此信息 例如:Javascript 如何获取当前函数';V8中的名称或行号,javascript,function,v8,line-numbers,Javascript,Function,V8,Line Numbers,我想动态地钩住V8中当前正在执行的函数的信息 例如函数名、行号或文件名等 当页面或应用程序在其中运行时,V8是否可以设置一些断点来获取此信息 例如: 函数f1(){ ... f2(); ... } 函数f2(){ ... } f1(); 您可以使用new Error().堆栈,然后解析输出 (function() { var b = function() { var trace = new Error().stack.split("\n")[1]; c
您可以使用new Error().堆栈,然后解析输出
(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)
如果愿意,您可以从中提取文件名、函数名、行号和列号。内容对齐谢谢您的回答。但我想知道是否有可能在V8中设置一些断点来获取这些信息,而不是在脚本中添加“new Error().stack”?不清楚“V8中的断点”是什么意思。您何时需要这些信息?我在使用GDB动态调试web应用程序时需要这些信息。我想知道V8是否可以在某个地方设置断点,以便在应用程序运行时获取此信息。如果您使用的是GDB,并且您已经在那里了,我想您可以了解
stack
属性是如何工作的,然后了解如何检索信息。但是不,很不幸,我不知道你问题的答案。