起動中のプロセスのデバッガを有効にしてデバッグする

node.jsで普通に起動したプロセスを後からデバッガを有効にしてデバッグする方法があるのは知ってたのですが、実際にやったことが無かったので試してみました。

普通に起動させる

とりあえずHTTPサーバを書きます。

index.js
require('http').createServer(function(req, res) {
  res.writeHead(200);
  res.end('Hello');
}).listen(3000);

普通に起動させます。

$ node index.js

デバッガを起動する

$ ps ax | grep node
$ kill -SIGUSR1 (pid)

上で起動させたnodeのpidを調べて、SIGUSR1を投げます。

node-inspectorからデバッグしてみる

$ npm install -g node-inspector
$ node-inspector

あとはGoogle Chromeからhttp://0.0.0.0:8080/debug?port=5858を開くと現在動作しているnodeのコードが表示できるので、ブレークポイントとかを置いてアクセスすると止まります。