如何在没有 GUI 的情况下附加 运行 node.js 进程和调试?
how to attach a running node.js process and debug WITHOUT a GUI?
通过发送 SIGUSR1,我可以在端口 5858 上启动内部调试器,并且可以使用 node-inspect 通过浏览器中的 GUI 调试 运行 进程。
但是,如果主机服务器没有 GUI,并且由于安全策略,这种端口 (5858) 被防火墙保护。如何在本地控制台中调试它?比如在 C/C++?
中使用 gdb
我在本地尝试了 telnet 5858,但它似乎在 HTTP 中进行调试操作。有没有现成的工具可以提供帮助?
Node.js(至少版本 7.x.x)有一个用于调试器的内置 CLI/text 客户端。要访问它,请使用 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.x.x 更改,使得此答案不再有效,请考虑为以下内容添加正确的信息较新的版本就在这里。:-D)
通过发送 SIGUSR1,我可以在端口 5858 上启动内部调试器,并且可以使用 node-inspect 通过浏览器中的 GUI 调试 运行 进程。
但是,如果主机服务器没有 GUI,并且由于安全策略,这种端口 (5858) 被防火墙保护。如何在本地控制台中调试它?比如在 C/C++?
中使用 gdb我在本地尝试了 telnet 5858,但它似乎在 HTTP 中进行调试操作。有没有现成的工具可以提供帮助?
Node.js(至少版本 7.x.x)有一个用于调试器的内置 CLI/text 客户端。要访问它,请使用 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.x.x 更改,使得此答案不再有效,请考虑为以下内容添加正确的信息较新的版本就在这里。:-D)