動かざることバグの如し

近づきたいよ 君の理想に

Nodejsで変数確認したりデバッグする方法

環境

  • nodejs 10

やりたいこと

rubybinding.pryみたいにプログラムコードの途中で実行を止めて変数の中身とか参照したい

やり方

例えば以下のようなjavascriptを用意する。

const val1 = 1;
const val2 = 2;

debugger

console.log(val1 + val2);

1つ目のポイントは止めたいところでdebuggerを入れる。

2つ目のポイントは実行をnode inspect xxx.jsとして実行する。

~/tmp $node inspect sample.js
< Debugger listening on ws://127.0.0.1:9229/0143445a-8d55-4c74-9a4c-00a11020097a
< For help see https://nodejs.org/en/docs/inspector
< Debugger attached.
Break on start in sample.js:1
> 1 (function (exports, require, module, __filename, __dirname) { const val1 = 1;
  2 const val2 = 2;
  3

debuggerのところまで行くには「cont」と入力してエンター

debug> cont
break in sample.js:4
  2 const val2 = 2;
  3
> 4 debugger
  5
  6 console.log(val1 + val2);

対話的に実行したいなら「repl」と入力してエンター

debug> repl
Press Ctrl + C to leave debug repl
> val1
1
> val2
2
> val1 + 114514
114515

終了する際は「.exit」と入力するかCtrl+cを二回押す。