💡 この記事でわかること
- VS Codeのデバッグ機能とは何か
- デバッグを始める基本手順
- ブレークポイントの置き方・使い方
- デバッグ中にできる操作(ステップ実行・変数確認)
- 初心者がつまずきやすいポイント
1. VS Codeのデバッグ機能とは?
プログラミングをしていると、「思った通りに動かない」「どこでエラーになっているのか分からない」という場面によく遇います。
そんなときに役立つのがデバッグ機能です。
デバッグ機能を使うと、プログラムを途中で一時停止して、その時点での変数の中身や処理の流れを一つずつ確認できます。
👉 「console.logで値を表示して確認する」よりも、デバッグ機能を使う方が、どこで何が起きているかを実際の値を見ながら確認できるため、原因特定が早くなります。
この記事では、Node.jsで動く JavaScript ファイルを例に、VS Code標準のデバッガを使った基本的な手順を紹介します。言語や実行環境によっては追加の拡張機能が必要な場合もあります。
2. デバッグを始める基本手順
「実行とデバッグ」ビューを開く
左側のアクティビティバーにある「実行とデバッグ」アイコン(再生ボタンに虫が付いたようなマーク)をクリックして開きます。
launch.jsonを作成する
初めてデバッグを実行する際は、「Just My Code」などの選択肢が表示されることがあります。基本的には推奨されている項目を選べば、.vscode/launch.json という設定ファイルが自動で作成されます。
💡 このファイルには「何のファイルをどのように実行するか」の設定が保存されるため、次回以降は同じ設定を使い回せます。
F5キーで実行
F5 キー(または緑色の再生ボタン)を押すとデバッグが始まります。ブレークポイントを置いていなければ、通常の実行と同じように最後までプログラムが実行されて終了します。
3. ブレークポイントの置き方・使い方
ブレークポイントとは
ブレークポイントとは、「この行で一時停止する」という目印です。問題のありそうな行や、内容を確認したい行に置いて使います。
置き方
エディタの行番号の左側(余白部分)をクリックすると、赤い丸が表示され、その行にブレークポイントが設定されます。もう一度クリックすると解除できます。
ブレークポイントを置いた状態でF5キーを押すと、プログラムはその行の直前で一時停止します。
条件付きブレークポイント
赤い丸を右クリックすると、「条件を追加」という項目が出てきます。例えば i === 5 のように条件を指定すれば、その条件を満たしたときだけ停止させることもできます。ループ処理の特定の回のみを確認したいときに便利です。
4. デバッグ中にできる操作
ブレークポイントで停止すると、画面上部に操作ツールバーが表示されます。
- 続行:次のブレークポイントまで実行を再開
- ステップオーバー:現在の行を1行だけ実行して次の行へ
- ステップイン:呼び出している関数の中に入っていく
- ステップアウト:現在の関数から抜けて呼び出し元に戻る
- 再起動・停止:デバッグを最初からやり直す・終了する
変数の中身を確認する
左側の「変数」パネルには、現在停止している行で存在する変数とその値が一覧表示されます。変数にマウスカーソルを重ねても値を確認できます。
ウォッチ式
「ウォッチ式」パネルで式を登録しておくと、デバッグ中にずっとその式の結果を追い続けられます。特定の変数や計算式の変化を継続的に見たいときに便利です。
デバッグコンソール
下部の「デバッグコンソール」タブでは、停止中に式を直接入力して評価結果を確認することができます。普段使っている統合ターミナルとは別のパネルですが、使い方は似ています。
5. 初心者がつまずきやすいポイント
ブレークポイントで止まらない
ファイルを保存していなかったり、実行されないコードの行に置いていると、ブレークポイントで止まらないことがあります。まずはファイルが保存されているかを確認しましょう。
実行環境が見つからない
Node.jsなどの実行環境が未インストールだと、デバッグを開始できないことがあります。エラーメッセージに実行環境名が表示されていないか確認してみてください。
launch.jsonを削除してやり直す
設定を試行錯誤しているうちに launch.json がうまく動かなくなった場合は、ファイルを一度削除して、最初から自動生成させ直すのが手っ取り早いことがあります。
まとめ
VS Codeのデバッグ機能を使えば、ブレークポイントで処理を一時停止し、変数の中身を見ながらバグの原因を特定できます。最初は操作が多く感じるかもしれませんが、F5で実行してブレークポイントを置くだけでも十分使える機能ですので、この記事の手順で一度試してみてください。