以“node --debug-brk”启动时,节点不会在第一行中断

Posted

技术标签:

【中文标题】以“node --debug-brk”启动时,节点不会在第一行中断【英文标题】:Node does not break at first line when started as "node --debug-brk" 【发布时间】:2015-05-08 22:00:57 【问题描述】:

以下文件以 node --debug-brk hello-http.js

启动

hello-http.js

// Load the http module to create an http server.
var http = require('http');

// Configure our HTTP server to respond with Hello World to all requests.
var server = http.createServer(function (request, response) 
  response.writeHead(200, "Content-Type": "text/plain");
  response.end("Hello World\n");
);

// Listen on port 8000, IP defaults to 127.0.0.1
server.listen(8000);

// Put a friendly message on the terminal
console.log("Server running at http://127.0.0.1:8000/");

在第一行,程序预计会中断,直到使用 node-inspector(在另一个终端上运行)发出 continue 命令,最后一行 console.log("Server running at http://127.0.0.1:8000/");不应该被打印。但是一旦节点启动它就不会中断并打印日志。

$ node --debug-brk hello-http.js 
Debugger listening on port 5858
Server running at http://127.0.0.1:8000/

使用在 ubuntu-12.04 LTS 机器上运行的 node version v0.12.0 如何让它在第一行中断(即 var http = require('http');)。

更新 1:

重启机器后

    node --debug-brk hello-http.js 等待调试器连接,如图所示

    $ node --debug-brk hello-http.js 调试器监听 5858 端口

    node-inspector被盯着另一个终端

    一旦 chrome 浏览器在http://127.0.0.1:8080/debug?port=5858 连接到 node-inspectornode 程序将继续执行(打印 Server running at http://127.0.0.1:8000) 无需等待调试器发送命令。

    $ node --debug-brk hello-http.js 侦听端口 5858 的调试器 服务器运行在http://127.0.0.1:8000/

这是预期的。如果是,如何让node-inspector发送断点命令在第一行设置断点。

【问题讨论】:

我无法重现这个。你有一个调试器在某个地方运行吗?也许您的调试器正在让它立即运行? 重启后节点程序等待调试器连接。然而,一旦节点检查器连接程序开始执行,而不会在第一行停止。请查看问题中的更新。 【参考方案1】:

看起来就像node-inspector 中的一个错误。

https://github.com/node-inspector/node-inspector/issues/534

【讨论】:

【参考方案2】:

这是 Node Inspector 在 v0.10 后版本(0.12、1.x)上运行时的已知问题,请参阅 https://github.com/node-inspector/node-inspector/issues/534。

【讨论】:

以上是关于以“node --debug-brk”启动时,节点不会在第一行中断的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs chrome 调试node-inspector

重新启动节点时如何使节点检查器重新启动?

Node.js - 以 CPU 核心为目标

nodejs 使用Google浏览器进行可视化调试——Node Inspector工具

roslaunch之node标签

如何配置用户环境以使用最新的节点运行时