我想知道如何在运行时访问 JavaScript 执行跟踪。我看到 Firebug 可以做这样的事情:
参考上图,所有执行的行号都以绿色突出显示。它们是在运行时实现的。我想一定有某种方法可以从浏览器使用的 JavaScript 引擎访问这些信息。
现在说我想构建一个萤火虫插件来访问这些信息并在运行时检查每个执行行中的所有变量,我应该如何开始?
我想知道如何在运行时访问 JavaScript 执行跟踪。我看到 Firebug 可以做这样的事情:
参考上图,所有执行的行号都以绿色突出显示。它们是在运行时实现的。我想一定有某种方法可以从浏览器使用的 JavaScript 引擎访问这些信息。
现在说我想构建一个萤火虫插件来访问这些信息并在运行时检查每个执行行中的所有变量,我应该如何开始?
显然你在 Firebug 论坛上问了同样的问题。
复制 Honza 的答案:
Firebug 目前正在使用 JSD (jsdIDebuggerService) 来确定哪一行是可执行的。但是,计划是切换到 JSD2(正在进行中)https://wiki.mozilla.org/Debugger
您还应该将您的扩展基于 JSD2
在 Debugger 文档中查找
getLineOffsets(line)
和。getOffsetLine(offset)
我没有测试它,但我认为如果getLineOffset返回null,则该行是不可执行的。
塞巴斯蒂安