今回はデバッグのやり方について。ホントに大事。
コマンドラインでデバッグ
前回のnode.jsの環境をmacに導入して色々やってみたけど、コマンドラインでデバッグする事が出来る事が分かった。
こうすると、デバッグの画面が出てくる。
debug> って書いてあるように、対話型のデバッガです。この時点で、参照したい変数とかを入力すると、その値が出てくるような感じ。
使えるコマンドは、こんな感じ。
c | コンティニュー(そのまま最後まで行く) |
---|---|
r | プログラムの先頭から再実行 |
n | 次のステップへ(ステップ実行) |
s | 関数内を実行(ステップイン) |
o | 関数内から抜け出す(ステップアウト) |
そしたら、とりあえずさっきの状態にnを押してEnterを押してみる。
はい、console.logでhelloが表示されて、3行目まで処理が進みましたね。これが原始的なやり方なんだと思います。一応sb(fileName, line)とか、cb(fileName, line)とかでブレークポイントも設定できるっぽいですが、ちょっと使いづらいですね。
node-inspectorを使おう
それに対して、node-inspectorを使うとエグいくらい簡単にデバッグ出来ます。具体的には、node-inspectorとChromeを用いてデバッグを行います。従って、必要なものは、node-inspectorのインストールとChromeのインストールです。
ここでは、node-inspectorのインストールを書きます。Chromeは適当にやっとく。
まず、githubに公開されているnode-inspectorをダウンロードしてくる。
https://github.com/node-inspector/node-inspector
そして、生み出されたディレクトリに行って、以下のコマンドを実行。
これで、インストールはできるはずです。とりあえずこれができれば準備は整ったも同然。ここからやることは、node.jsのアプリケーションをデバッグ状態で起動して、その実行情報をローカルのwebに公開する。そこで公開された実行情報chromeから覗き見る、といった流れです。
まず、デバッグ状態で起動及びそれをローカルのwebに公開って部分をやります。コマンドはこんな感じ。まずはデバッグ状態で起動。
デフォルトのデバッグポートは5858なのですが、変えたければこうやって書ける。
さっきからやってるhello.jsはコールバックとかないので、1行目でブレークしておきたい。そういうときは、こうやって書く。
次に、node-inspectorを起動し、localのwebに実行状態を公開する。
これで、node-inspectorの起動完了。そしたら、chromeで、こちらのページにアクセス。
http://ホスト名:8081/debug?port=5859
そうすると、あら不思議、デバッグの画面が出てくる。スクリーンショット貼るのはだるいので、昔の攻略本にあった「あとは君の目で確かめてくれ!」って感じでよろしくお願いします。