SourceChord

C#とXAML好きなプログラマの備忘録。最近はWPF系の話題が中心です。

Node.jsプロジェクトのデバッグ実行でブレークできない時の対処

VSでNode.jsプロジェクトのデバッグをしてる時に、デバッガがブレークポイントで止まってくれない、ということがありました。。


とりあえず、自分の環境は以下のとおり。

環境
Node.jsのプロジェクトでデバッガが動作しない場合

Node.jsのコンソールアプリで以下のようなコードを書き、ブレークポイントを張ってデバッグ実行してみます。
f:id:minami_SC:20150322182759p:plain

すると、ブレークポイントに引っかからず、すべてのコードが実行されてしまいます。
で、スクリプトの実行が完了して、しばらく経ってからVS側のデバッガが動作し始めます。

コンソールアプリではなく、Webサーバーのアプリを作っているときも同じような問題が起きます。
サーバーのlistenループに入る前の部分でブレークしようとしても、同様にブレークポイントで止まれません。。。


対処法

NTVSのページを見てみると、Recommended Downloadとして以下のものが上がってました。
デバッガでブレークポイントが効かない問題などが対処されてるみたいです。
・NTVS Dev 2015-03-03 VS 2013.msi
https://nodejstools.codeplex.com/releases/view/612156
f:id:minami_SC:20150322182806p:plain


これをインストールしたら、デバッグ実行時に無事デバッガが素早く立ち上がり、ブレークポイントで止まるようになりました。
f:id:minami_SC:20150322182815p:plain

Node.js v0.12と共に使ってる人は、これ入れておくと良さそうです。



今まで、スクリプトの最初の方(ブレークポイントの箇所より前)に以下のような無駄コードを入れて対策してました。

  • 無駄に長時間かかる空ループ作ったり、、、
  • 標準入力からの同期入力処理を入れたり、、、

こういう時間のかかる処理を入れて、VSのデバッガが立ち上がったのを確認してから、デバッグ実行してました。
なんか、すごく無駄な事してたなぁ。。。orz