在我的上下文中打印一切

时间:2013-09-26 06:28:59

标签: javascript node.js debugging

我正在尝试使用nodejs做一些有趣的事情,这需要我在shows all the objects that are present in the current context的javascipt中运行一个语句。

这些对象可能只是由我或nodejs环境创建的。

这是否在javascript中得到了促进?

一种用途可用于调试目的。

1 个答案:

答案 0 :(得分:0)

从js级别不可能。您可以从调试器中获取所有框架和闭包范围变量(并且它很容易自动化 - require('_debugger')。如果这是您准备尝试的内容,我可以解释V8 debugger protocol的详细信息并在node.js客户端中内置为了它。

更新

来自节点核心的调试器客户端的基本用法:

var DebuggerClient = require('_debugger').Client;
var dc = new DebuggerClient();
dc.connect(5858);  // you need to start your script with "node --debug-brk=5858 script-to-debug.js"

// listen breakpoint:
dc.on('break', function(res) {
   // sctipt id, line, location here
   dc.reqBacktrace(function(err, res) {
      // res.frames array
   });

   dc.reqScopes(function(scopes) {
      // SCOPES! TADAM!
   });

});

首先尝试使用“debugger”关键字,检查结果,然后继续设置/更改脚本中的断点。

used in node中查看它是node-vim-debugger的方式,如果缺少某些内容,请参阅V8 debugger protocol documentation

请注意,您可以从正在调试的脚本中访问similar API,了解it is used to set breakpoint at the beginning of the script

的方式
// script is a reference to Script object, see "vm" module
global.v8debug.Debug.setBreakPoint(script, 0, 0);