node远程在线调试(node 0.10.17、node 6.9.1 node v8.14.0)

时间:2024-03-13 09:48:43

关于node远程调试

简述

      网上有很多有关node调试的教程,但大都没有针对各版本的区别来讲。本人经过一些摸索,总结了一些经验,分享给大家。

      先来了解一下node的相关版本信息。 官网列出的版本信息:https://nodejs.org/zh-cn/download/releases/

      node远程在线调试(node 0.10.17、node 6.9.1 node v8.14.0)       

     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,只能指定发布端口

node远程在线调试(node 0.10.17、node 6.9.1 node v8.14.0)       

node远程在线调试(node 0.10.17、node 6.9.1 node v8.14.0)

       如上图所示。在 0.12的时候,默认监听只提示在哪个端口,--debug 选项只能指定port,不能指定发布的IP。调试程序监听任意到本机的5858端口请求,只要支持V8 debug协议都可以连接。

        2. V4之后可以指定调试接口发布IP

node远程在线调试(node 0.10.17、node 6.9.1 node v8.14.0)

       如上图所示,在4之后,已经支持指定调试发布的IP。     

       3. V8之后不能使用 --debug ,改用--inspect

      node远程在线调试(node 0.10.17、node 6.9.1 node v8.14.0)

       上图引自官方文档,表明在7.7之后,--debug被放弃了。v7.x的个别版本已经支持--inspect,并警告--debug被放弃,但只是提示,仍然可用,到8之后,就真正放弃了--debug ,正式开始使用--inspect。如下图。

     

node远程在线调试(node 0.10.17、node 6.9.1 node v8.14.0)

 

远程调试方式

       主要方式: 首先在服务端启动时指定调试参数 ,然后再使用一个调试客户端进行调试。

       客户端:可使用 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