[Visual Studio Code]node.js デバッグ

サーバで、foreverをグローバルでインストールしコマンドラインから使える様にする。

$ npm install forever -g
$ forever --version
v3.0.0

デバッグの準備

$ cd {node.jsアプリのフォルダ}
$ forever -c 'node --inspect=0.0.0.0:9229' app.js
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
Debugger listening on ws://0.0.0.0:9229/ad7164d6-5cb7-43bb-9585-7c95c6d24e28
For help, see: https://nodejs.org/en/docs/inspector

アプリがlisenに成功したら標準出力に
app listening on port http://{サーバー名}:{ポート} !
と表示させると便利。

Visual Studio Code の方の「実行」⇒「構成の追加」から
{} Node.js :Attach to remote program を選択し
lanuch.jsに追加されたブロックに
 ”address”: {サーバ名}
 ”port”: 9229
と編集して、【実行】すると、

(node:22749) [INSPECTOR_ASYNC_STACK_TRACES_NOT_AVAILABLE] Warning: Warning: Async stack traces in debugger are not available on 32bit platforms. The feature is disabled.

と出てくるので、lanuch.jsのAttach to remote programに設定を追加。

"showAsyncStacks": false

適当にソースでブレークポイントも追加しても〇になるので無効。
しかし、アプリの出力はサーバーのコンソールとデバッグコンソールの両方に表示され、VSCから再起動も出来る。

デバッグコンソールに何故かconsole.logしたソースのリンクが貼ってある。

これをクリックするとデバッグ中のプロセスと連携しているソースが表示されるので、ブレークポイントを設定できる。

しかし、次にその場所に来た場合に一時停止になる仕組みなので、
事前にブレークポイントを設定して実行!という訳にはいかないが、大抵のことはコレで十分だろう。

VSCからまだコミットが出来ないので git push も変だ。

OpenSSH Authentication Agentを自動起動
> ssh-agent
> ssh-add
Enter passphrase for C:\Users\***/.ssh/id_rsa: {パスワード}
Identity added: C:\Users\***/.ssh/id_rsa (***@********)

まですると、コマンドラインからは git pushできる。
VSCは待機中になってしまう。




コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA