node.js Internals:我怎样才能找到`process.binding('eval')`的定义?

时间:2012-08-27 08:52:42

标签: c++ node.js v8 libuv

  • 我怎样才能找到node.js的C ++源代码中定义的JavaScript对象,我可以通过process.binding('eval')访问哪些? - 在这个特殊情况下,我已经发现它位于/src/node_script.cc,但是:当我查看{我>时,我怎么知道找到该模块的哪个位置{1}}目录概述?我不想单步执行/src/中的所有文件以查找模块。
  • 我在哪里可以找到有关/src/ s
  • 内部的深入信息

感谢。

1 个答案:

答案 0 :(得分:2)

我今天也在寻找自己。我不能保证没有更多,但这是我发现的。

src / node_extensions.h包含一个内置模块列表,定义如下:

ITEM(node_module_name)

其中module_name是模块的名称(显然)

您可以通过搜索哪个文件的行以

开头来找出定义该模块的文件
NODE_MODULE(node_module_name, 

因此,要找到为process.bindings定义'evals'模块的文件:

$ grep "NODE_MODULE(node_evals" src/*.cc
src/node_script.cc:NODE_MODULE(node_evals, node::InitEvals)