将Node Inspector与多个节点进程配合使用

时间:2012-10-19 05:39:25

标签: node.js node-inspector

我开始使用Node Inspector来调试我的一些Node应用程序。但是,有一件事我不知道该怎么做,一旦Node-inspector连接到一个Node应用程序,如何分离并将它连接到同一个盒子上运行的另一个Node应用程序?

我可以同时附加到多个进程吗?

4 个答案:

答案 0 :(得分:16)

首先,使用不同的调试端口启动节点程序,如下所示:

$ node script1.js --debug==5858
$ node script2.js --debug==5859

然后开始node-inspector

$ node-inspector &

并使用

在两个选项卡中打开Web控制台
  1. http://localhost:8080/debug?port=5858
  2. http://localhost:8080/debug?port=5859

答案 1 :(得分:0)

附加调试器

按端口或按进程ID。对于端口,请为每个进程使用不同的端口。在命令行上:

node --inspect 8085 some_script_1.js
node --inspect 8086 some_script_2.js
node --inspect 9012 some_script_3.js

在单独的终端窗口中,您可以使用node inspect <host>:<port>附加到任何这些进程。例如,在端口some_script_2.js上连接到8086

node inspect 127.0.0.1:8086

附加到不同的进程就是更改端口的问题,例如您将运行的9012

node inspect 127.0.0.1:9012

如果您没有在单独的已知端口上启动节点,则还可以使用-p标志将其直接附加到现有进程上

node inspect -p <node_script_process_id>

在Linux和Mac OS上,使用ps -A | grep node查找节点进程ID。进程启动后,您还可以通过将信号发送到节点进程SIGUSR1 Reference

来附加检查器。

node-inspect程序(source)与核心节点是分开的。尽管它与nodejs捆绑在一起。节点检查重新实现节点调试以解决限制

  

对于Chrome检查器协议,只有一个:node --inspect ...该项目尝试通过针对新协议重新实现节点调试来提供缺少的第二个选项。

Debugger API documenation

附加调试器的其他方式

https://nodejs.org/en/docs/guides/debugging-getting-started/

您可以在Chrome中查看与调试器的交互。只需在专用NodeJS DevTools窗口的Connections标签下添加其他连接即可。

Chrome Window for DevTools connections

相似但独立的项目

值得一提的是,有一个类似的项目现已弃用,名为node-inspector,它与node-inspect分开,已于2018年10月在节点v10.11.0中进行了测试

答案 2 :(得分:0)

https://stackoverflow.com/a/18911247/1301197所述,您可以使用以下命令指定端口

node --inspect=7000 --inspect-brk app1.js

当然,您只需为每个节点服务器指定一个不同的端口

node --inspect=7001 --inspect-brk app2.js

答案 3 :(得分:0)

如果您使用 Chrome ,则还可以直接将 devtools 与以下网址一起使用:

devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/0cc79945-8386-4082-aabb-328341bfc953

*其中9229/0cc79945-8386-4082-aabb-328341bfc953-部分可以从节点的输出中获取


例如,使用以下命令运行第一个 app

$ node --inspect-brk=7777 app.js
Debugger listening on ws://127.0.0.1:7777/2df21a01-44ff-40c4-b6ff-1f839f81f9d6

,因此结果 url 将是:

devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:7777/2df21a01-44ff-40c4-b6ff-1f839f81f9d6

然后使用以下内容的第二个 app 实例:

$ node --inspect-brk=7778 app.js
Debugger listening on ws://127.0.0.1:7778/d4e8d8ce-abe9-46c6-89b1-ad0616bdf237

带有 url

devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:7778/d4e8d8ce-abe9-46c6-89b1-ad0616bdf237