如何在没有GUI的情况下附加正在运行的node.js进程和调试?

时间:2015-05-12 03:29:09

标签: node.js debugging console

通过发送SIGUSR1,我可以在端口5858上启动内部调试器,并可以使用node-inspect通过浏览器中的GUI调试正在运行的进程。

但是,如果主机服务器没有GUI,并且由于安全策略,这种端口(5858)被防火墙。如何在本地控制台中调试它?比如在C / C ++中使用gdb吗?

我在本地尝试了telnet 5858,但似乎在HTTP中讨论调试操作。有没有现成的工具可供帮助?

1 个答案:

答案 0 :(得分:4)

Node.js(至少版本7.x.x)具有用于调试器的内置CLI /文本客户端。要访问它,请使用debug参数启动程序;例如:node debug server.js

有关如何导航调试器的详细信息,refer to the documentation

该文档包含有关如何附加到正在运行的PID(node debug -p <pid>)或如何通过端口5858附加到流程的说明,就像您询问的那样(node debug localhost:5858)。

在撰写本文时,Node.js版本8.0.0尚未发布。但是,可能会在该版本中替换CLI调试程序。 (请将此放在此处,以便将来找到此答案的用户。如果Node.js版本8.0.0或更高版本已从7.xx更改为此答案不再有效,请考虑为新版本添加正确的信息这里。:-D)