关于node远程调试
简述
网上有很多有关node调试的教程,但大都没有针对各版本的区别来讲。本人经过一些摸索,总结了一些经验,分享给大家。
先来了解一下node的相关版本信息。 官网列出的版本信息:https://nodejs.org/zh-cn/download/releases/
1.x 到 3.x 版本被叫做 “io.js”,因为它们属于 io.js 的分支。从 Node.js 4.0.0 开始,之前版本的 io.js 与 Node.js 0.12.x 合并到统一的 Node.js 发行版中。
Node 远程调试方式
node远程调试支持方式有 --debug参数(使用V8 debugging protocol)和 --inspect参数。两者的原理和适用版本是不一样的。
--debug 适用于node8之前 --inspect 适用于8之后。
各版本对远程调试的支持
1. V4之前不支持指定调试接口发布IP,只能指定发布端口
如上图所示。在 0.12的时候,默认监听只提示在哪个端口,--debug 选项只能指定port,不能指定发布的IP。调试程序监听任意到本机的5858端口请求,只要支持V8 debug协议都可以连接。
2. V4之后可以指定调试接口发布IP
如上图所示,在4之后,已经支持指定调试发布的IP。
3. V8之后不能使用 --debug ,改用--inspect
上图引自官方文档,表明在7.7之后,--debug被放弃了。v7.x的个别版本已经支持--inspect,并警告--debug被放弃,但只是提示,仍然可用,到8之后,就真正放弃了--debug ,正式开始使用--inspect。如下图。
远程调试方式
主要方式: 首先在服务端启动时指定调试参数 ,然后再使用一个调试客户端进行调试。
客户端:可使用 node自带的debugger 、 node-inspector、 vscode 等
关于node调试以及node远程调试的安全问题可参考官方文档: https://nodejs.org/en/docs/guides/debugging-getting-started/
具体调试步骤示例,可参考 :https://www.cnblogs.com/chyingp/p/node-debug.html