3

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

你好-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 机器上运行的节点版本 v0.12.0如何使其在第一行中断(即 var http = require('http');)。

更新 1:

重启机器后

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

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

  2. 节点检查器盯着另一个终端

  3. 一旦 Chrome 浏览器在 http://127.0.0.1:8080/debug?port=5858连接到节点检查器,节点程序就会继续执行(打印服务器在http://127.0.0.1:8000运行),无需等待调试器发送命令。

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

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

4

2 回答 2

4

只是看起来像一个错误node-inspector

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

于 2015-03-08T17:33:32.063 回答
2

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

于 2015-03-09T17:01:06.450 回答