`

nodejs远程调试

 
阅读更多

一,eclipse安装nodejs和chromedevtools插件即可调试,插件的安装配置上一篇中已经说明。

(1)要想调试,启动node服务时需要加个参数: 

命令行模式:

     node --debug xxx.js

    node --debug=0000 xxx.js

eclipse模式:


   

这是开启调试端口,不指定,默认端口是5858

 

 

 

 

二、远程调试(非本地调试)

 

我们的NODE工程由于用到了连接mysql用的mysql-libmysqlclient 包,这个包中有c程序,在windows运行比较困难,于是我们的工程只能在linux上运行。(为了便于开发,我们将linux上的node工程目录共享给windows,这样就可以在windows上修改代码,linux上运行了。

共享需要在linux上安装 samba ,这里不介绍了。)

此时的问题是用eclipse远程调试linux上的代码,无法连接:

 

Failed to connect to Standalone V8 VM

Failed to get version



 

解决办法
第一种是远程机编译之前修改nodejs源码,修改deps/v8/src/platform_posix.cc 文件中的Socket::Bind 方法:

 

boolPOSIXSocket::Bind(const int port) {
  if (!IsValid())  {
    return false;
  }
 
  sockaddr_in addr;
  memset(&addr, 0, sizeof(addr));
  addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
  addr.sin_port = htons(port);
  int status = bind(socket_,
                    BitCast<struct sockaddr*>(&addr),
                    sizeof(addr));
  return status == 0;
}

 

 

红色的改成   INADDR_ANY,之后用修改好的nodejs源码在linux上安装。

 

第二种:远程机的127.0.0.1 5858 映射到其他端口,这里也不详述了。

 

第一种没有试验过,第二种使用中,可以成功调试。

 

ps:  在eclipse中启动nodejs(使用了supervisor) 之后,关闭服务不起作用,需要手动结束node进程。

 

 三、自动部署(重启node

安装 supervisor ,g 是安装成全局变量

npm install -g supervisor

不使用 node  xxx.js启动node工程 ,而是:

 

supervisor  xxx.js  

 

 

 

  • 大小: 57 KB
  • 大小: 110.2 KB
  • 大小: 12.9 KB
分享到:
评论
6 楼 leichenlei 2014-10-10  
liuyuanli的微博 写道
我试了一下Linux,用SSH成功了,你是用SSH吗?


成功了就好。
5 楼 leichenlei 2014-10-10  
liuyuanli的微博 写道
我试了一下Linux,用SSH成功了,你是用SSH吗?


linux不熟,linux端口映射是别人做的,我也不清楚命令是什么,当时记下来好了。
4 楼 liuyuanli的微博 2014-10-10  
我试了一下Linux,用SSH成功了,你是用SSH吗?
3 楼 liuyuanli的微博 2014-10-09  
能介绍一下你在Linux上端口映射到方法吗,我想在Linux上也试一下,谢谢!
2 楼 leichenlei 2014-10-09  
liuyuanli的微博 写道
你在文中提到把127.0.0.1 5858 映射到其他端口成功实现了远程调试,能告诉我具体的方法吗?谢谢!

我是在Windows上,试了用下面的命令添加端口转发,但还是无法绑定到物理网卡的端口上进行调试。

netsh interface portproxy add v4tov4 listenport=5859 listenaddress=“物理网卡IP” connectport=5858 connectaddress=127.0.0.1


目的是在自己电脑上调试另一台linux上的nodejs。

我的电脑是win7, 远程机是linux。

这里的端口映射是在linux远程机上做端口映射,之后在win7上远程调试。
1 楼 liuyuanli的微博 2014-10-08  
你在文中提到把127.0.0.1 5858 映射到其他端口成功实现了远程调试,能告诉我具体的方法吗?谢谢!

我是在Windows上,试了用下面的命令添加端口转发,但还是无法绑定到物理网卡的端口上进行调试。

netsh interface portproxy add v4tov4 listenport=5859 listenaddress=“物理网卡IP” connectport=5858 connectaddress=127.0.0.1

相关推荐

    手机Web页面CSS样式及JS进行PC远程调试【图文】

    【手机Web页面CSS样式及JS进行PC远程调试】 1、 概述 远程调试是Web开发者在优化手机网页时的一项重要技能,它允许开发者在PC上实时查看和修改手机端的CSS样式和JavaScript代码,无需频繁地在设备之间切换刷新。本...

    Node.js-使用Nodejs调试iOS的APNS通知推送如此简单

    在iOS应用开发中,Apple Push Notification service (APNS) 是苹果提供的一项服务,用于向运行iOS、iPadOS或watchOS的设备发送远程通知。本文将详细介绍如何使用Node.js来调试iOS的APNS通知推送,让您了解这个过程并...

    nodejs-vscode-debug:使用VS Code远程调试您的Node.js Web应用程序

    在本文中,我们将深入探讨如何使用Visual Studio Code(VS Code)这一强大的源代码编辑器,进行远程调试Node.js Web应用程序。VS Code不仅支持多种编程语言,包括JavaScript和TypeScript,而且其内置的调试工具功能...

    SSH进入你的nodejs进程然后访问一个REPL

    7. **远程调试**:如果你想要进行更高级的调试,可以利用Node.js的`--inspect`选项启动进程,这将使你能够通过Chrome DevTools或其他支持V8 Inspector的工具进行远程调试。 8. **自动化流程**:为了提高效率,可以...

    基于SpringBoot + Vue实现的幼儿园管理系统设计与实现+毕业论文+答辩PPT(包运行成功),有配套远程调试服务

    基于SpringBoot + Vue实现的幼儿园管理系统设计与实现+毕业论文+答辩PPT(包运行成功),有配套远程调试服务 本系统包含管理员、教师、家长三个个角色。 管理员:用户管理、教师管理、幼儿信息管理、班级信息管理、...

    基于nodejs人事管理系统的设计与实现(论文+源码)-kaic.rar

    论文+远程调试+毕业设计+重复率低+源码基于nodejs人事管理系统的设计与实现(论文+源码)_kaic.rar基于nodejs人事管理系统的设计与实现(论文+源码)_kaic.rar基于nodejs人事管理系统的设计与实现(论文+源码)_kaic.rar...

    volcan:firefox远程调试协议客户端

    用于远程调试 Firefox 的库。 它根据它所连接的 Firefox 上存在的功能生成所有客户端。 库比 idomatic node 有更多的 DOM API 感觉,因为它最初是为 firefox add-ons SDK 设计的,但与 nodejs 兼容。 用法 var ...

    DevTools-Plus:扩展V8远程调试器协议

    DevTools Plus DevTools协议扩展模块介绍此模块希望使用Chrome v1.2 / 1.3或更高版本的远程协议版本来扩展V8远程调试器。多目标目标之一是不特定于node.js,而是要适应其他JavaScript环境(Wakanda?像引擎一样的...

    scott的nodeJs项目

    - 调试工具如Node.js的内置`--inspect`标志,配合Chrome DevTools进行远程调试。 6. **部署与持续集成** - 项目可能使用Docker进行容器化部署,简化环境一致性问题。 - CI/CD工具如Jenkins、GitLab CI/CD或...

    nodejs的exe文件

    9. **调试**:开发者可以使用 `--inspect` 参数启动 `node.exe` 进行调试,配合 Chrome DevTools 或 Visual Studio Code 等工具,进行远程或本地的源码级调试。 10. **性能优化**:`node.exe` 支持多种性能优化手段...

    Node.js-SwissArmyKnifeAndroid免root兼容所有版本UI调试工具

    SwissArmyKnife利用了Node.js的强大能力和Android的ADB(Android Debug Bridge)进行通信,提供了丰富的命令行工具来帮助开发者进行远程UI调试。这个工具不仅简化了调试过程,而且降低了对设备的依赖,使得在不Root...

    nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用.

    标题中的“nodejs使用原生的dubbo协议打通了dubbo的rpc方法调用”意味着在Node.js环境中,开发者成功地实现了对Dubbo服务的RPC(远程过程调用)访问,利用了Dubbo协议的特性。Dubbo是阿里巴巴开源的一个高性能、轻量...

    webrtc demo(html+js+nodejs)

    通过学习和调试这个项目,你可以深入理解WebRTC的信令流程、媒体流处理和多人视频会议的实现细节。同时,这也是一个很好的起点,可以根据需要扩展功能,如增加屏幕共享、音频处理、服务质量监控等。

    NodeJs 几个npm模块

    它提供了丰富的日志级别(如 debug、info、warn、error),并能将日志输出到控制台、文件、甚至是远程服务器。Log4js 支持自定义格式化输出,可以方便地跟踪代码中的问题,帮助开发者进行调试和监控。 这些模块都是...

    nodejs安装及环境配置.rar

    2. 使用Node.js内置调试器:通过`node --inspect-brk index.js`命令启动应用,然后在浏览器中输入调试URL(如`chrome://inspect`)进行远程调试。 五、其他进阶配置 1. NVM(Node Version Manager):如果你需要在...

    nodejs服务端+mysql+sqlite+log4js

    在这个项目中,我们看到“nodejs服务端+mysql+sqlite+log4js”的组合,这代表了四个关键的开发组件。 首先,Node.js是一个开放源代码、跨平台的JavaScript运行环境,它让开发者能够在服务器端执行JavaScript代码。...

    COM口调试软件,支持MODBUS调试

    它基于ASCII或RTU(远程终端单元)两种报文格式,能处理离散输入、线圈状态、保持寄存器和输入寄存器等多种类型的数据。MODBUS协议的简单性使得它成为工业自动化领域的首选通信协议之一。 描述中提到的“设置灵活”...

    基于WSL2和vscode搭建nodejs linux 开发环境1

    这就是Windows Subsystem for Linux (WSL2) 和 Visual Studio Code (VSCode) 远程开发功能发挥作用的地方。 **什么是VSCode远程开发环境?** VSCode远程开发环境允许用户在本地Windows系统上使用VSCode,同时利用...

    Node.js-devtool-通过ChromeDevTools运行Node.js程序

    2. **远程调试**:通过配置 `devtool` 的监听地址,可以实现远程调试你的 Node.js 服务。 总结,`devtool` 提供了一个强大且直观的方式,让我们能够利用熟悉的 Chrome DevTools 调试 Node.js 程序。结合其丰富的...

Global site tag (gtag.js) - Google Analytics