Node.jsプロジェクトのデバッグ実行でブレークできない時の対処
VSでNode.jsプロジェクトのデバッグをしてる時に、デバッガがブレークポイントで止まってくれない、ということがありました。。
とりあえず、自分の環境は以下のとおり。
環境
- Node.js v0.12.0
- Visual Studio 2013 Update4
- Node.js Tools for Visual Studio RC2
Node.jsのプロジェクトでデバッガが動作しない場合
Node.jsのコンソールアプリで以下のようなコードを書き、ブレークポイントを張ってデバッグ実行してみます。
すると、ブレークポイントに引っかからず、すべてのコードが実行されてしまいます。
で、スクリプトの実行が完了して、しばらく経ってからVS側のデバッガが動作し始めます。
コンソールアプリではなく、Webサーバーのアプリを作っているときも同じような問題が起きます。
サーバーのlistenループに入る前の部分でブレークしようとしても、同様にブレークポイントで止まれません。。。
対処法
NTVSのページを見てみると、Recommended Downloadとして以下のものが上がってました。
デバッガでブレークポイントが効かない問題などが対処されてるみたいです。
・NTVS Dev 2015-03-03 VS 2013.msi
https://nodejstools.codeplex.com/releases/view/612156
これをインストールしたら、デバッグ実行時に無事デバッガが素早く立ち上がり、ブレークポイントで止まるようになりました。
Node.js v0.12と共に使ってる人は、これ入れておくと良さそうです。
今まで、スクリプトの最初の方(ブレークポイントの箇所より前)に以下のような無駄コードを入れて対策してました。
- 無駄に長時間かかる空ループ作ったり、、、
- 標準入力からの同期入力処理を入れたり、、、
こういう時間のかかる処理を入れて、VSのデバッガが立ち上がったのを確認してから、デバッグ実行してました。
なんか、すごく無駄な事してたなぁ。。。orz