node.js内部:如何找出'process.binding('eval')`被定义的位置?
- 我怎样才能find在node.js的C ++源代码中的JavaScript对象得到定义,我可以通过
process.binding('eval')
? – 在这种特殊情况下,我已经发现它在/src/node_script.cc
中,但是:我怎么才能知道在哪里可以find那个模块,只要看看/src/
目录概览 ? 我不想浏览/src/
中的所有文件以查找模块。 - 我在哪里可以find关于
process.binding()
的内部深入的信息?
谢谢。
我今天也在找同样的东西。 我不能保证没有更多的东西,但这是我发现的。
src / node_extensions.h包含一个内置模块列表,定义如下:
ITEM(node_module_name)
其中module_name是模块的名称(显然)
您可以通过search哪个文件具有以该行开始的行来找出哪个文件定义了该模块
NODE_MODULE(node_module_name,
因此,要find定义process.bindings的“evals”模块的文件:
$ grep "NODE_MODULE(node_evals" src/*.cc src/node_script.cc:NODE_MODULE(node_evals, node::InitEvals)