2014-06-11 36 views
10

在使用node.js的调试器时,我一直在使用node --debug-brk XXXX.js运行节点进程进行调试。令人讨厌的是,如果我意外断开连接,我必须重新开始整个过程​​。有没有办法重新连接到调试器?当我尝试(通过intelliJ)时,它根本不会重新连接。如何重新连接到node.js的远程调试器

+0

当你重新连接,你设置断点它停止呢? '--debug-brk'在程序开始时停止,并且由于您试图避免重新启动它,您必须在某处设置断点。 – loganfsmyth

+0

是,已经设置了断点(因为我已经调试之前意外关闭调试器连接) –

+0

调试也是一种过程,开始 - 调试标志,并启动,暂停,继续在断点,但如果你说你已经停止过程,它如何保存会话?我不认为有这样的做法(否则现在根据我的知识是不可用的)。 – Sathish

回答

1

尝试使用节点检查器,当它在浏览器中打开时,它将重新连接到节点服务器,但调试将从启动开始。

+0

你是什么意思“从头开始”? –

+0

@BT从启动开始意味着程序的执行将从第一行开始 – KlwntSingh

+1

这没有任何意义,如果我的服务器仍在运行,为什么我的调试器将从“第一行”开始? –

1

您也可以使用nodewebkit,它可以很容易地调试代码。

1

作为Google Chrome Developer Tools的一部分发布的V8调试器可用于调试Node.js脚本。有关如何工作的详细说明可在Node.js GitHub wiki中找到。

替代将是

的Node.js版本0.3.4+内置了调试支持。

node debug script.js 

手册:http://nodejs.org/api/debugger.html

绘制与Profiler

注意:分析器模块已被弃用,并不得与节点的0.12版本中运行

  1. 安装全球npm install -g profiler

  2. node --prof这个启动过程将通过运行~/.nvm/v0.8.22/lib/node_modules/profiler/tools/build-nprof

  3. 运行~/.nvm/v0.8.22/lib/node_modules/profiler/nprof这将读取v8.log轮廓,给你不错的输出创建v8.log文件

  4. 构建nprof。

CPU和内存性能分析与NodeTime

  1. 安装到你的应用程序,npm install nodetime

  2. 包括在你的应用程序,require('nodetime').profile()

  3. 按照它将输出指令到控制台

或者,您可能希望使用look,它基于nodetime,但不会将数据发送到nodetime.com。

开发工具调试与Node Inspector

  1. 全球安装:npm install -g node-inspector

  2. 在调试模式下运行应用程序:node-debug your/node/program.js(或附加到正在运行的进程:kill -s USR1 <your node process id>)

  3. 在另一个终端窗口中运行node-inspector:node-inspector

  4. 打开http://127.0.0.1:8080/debug?port=5858(或通过将127.0.0.1替换为主机进行远程调试;确保端口8080打开)。

Webkit开发工具与Node Webkit Agent

  1. 剖析安装到你的应用程序,npm install webkit-devtools-agent

  2. 包括在你的应用程序,agent = require('webkit-devtools-agent')

  3. 激活剂:kill -SIGUSR2 <your node process id>

  4. 访问代理通过appropriate link

+1

所以你谈论的大部分内容都是剖析,这与我的问题无关。你是否认为chrome的开发人员工具可以在断开连接后重新连接到node.js脚本? –

+0

您是否在项目中使用socket.io? – CloudFreezer

+0

我不是,我正在使用websockets tho –

相关问题