我有一个相当特殊的调试问题,因为我的Node应用程序本身就是一个Node调试器(应用程序的一个部分将提供一个调试接口来调试另一个部分)。
我熟悉V8调试协议,记录在:
https://code.google.com/p/v8/wiki/DebuggerProtocol
以及使用它的多种工具(包括Node中的内部调试器、节点检查器和许多其他工具)。如果我必须通过网络连接来访问API,正如所有现有工具所做的那样,我可以这样做,但我不希望有几个原因。我已经进入-proc,希望避免在所有情况下打开调试端口和网络开销(这是我的生产环境的一部分),并且我希望从调试API中获得Javascript对象,而不是通过JSON化的版本,您可以通过JSON API(它缺乏一些保真度)。
V8调试器文档说:“这有两个API :基于函数的API使用JavaScript对象,基于消息的API使用基于JSON的协议,基于函数的API可以由进程内调试器代理使用,而基于消息的API也可以用于进程外。”
使用JavaScript对象的基于函数的API听起来正是我所需要的,但是我在V8文档中看不到关于这个API或如何使用它的其他任何东西。我也无法看到如何从V8访问这个API (或一般的Node.js )。那么,这有可能吗?如果有,怎么可能?
发布于 2014-03-14 10:44:20
从来没有失败过。一整天都在研究。寄给他。10分钟后找到答案。
使用以下参数启动Node.js:--expose-debug-as=v8debug
这并不令人意外地将V8调试状态公开为您可以引用的模块:
var debug = v8debug.Debug;
var scripts = debug.scripts();仍在整理JS入口点的堆积,以及它们如何与已发布的API保持一致,但我认为我的主要问题或多或少已经解决了。
https://stackoverflow.com/questions/22401679
复制相似问题