現場で使えるChrome DevTools実践ガイド 第6章:Sourcesパネルでのブレークポイントとステップ実行

JavaScript のバグ調査や処理の追跡には、console.log() では限界があります。
そこで活躍するのが「Sourcesパネル」。このパネルを使えば、コードの任意の位置で実行を一時停止し、変数の値や処理の流れを詳細に観察できます。

本章では、Sourcesパネルによる ブレークポイントの活用 と、コールスタックやスコープの調査ウォッチ機能による変数監視を学びましょう。


6.1 ブレークポイントの種類

Sourcesパネルでは、さまざまな種類のブレークポイントを設定できます。
これにより、任意の条件でコード実行を一時停止し、状態を確認できます。

① 通常の行ブレークポイント

  • コードの左側の行番号をクリック → 青いマーカーが付き、そこで一時停止
  • 実行を再開するまで、その行以降のコードは実行されない

② DOM変更ブレークポイント

  • Elements パネルで特定の要素を右クリック → 「ブレークポイント」→「属性の変更」「子要素の変更」などを選択
  • DOMの変化が起きたタイミングで停止

③ XHR(Ajax)ブレークポイント

  • 「Fetch/XHR」内で任意のリクエストURLを指定
  • 特定のAPI呼び出しが発生したときに停止できる

④ イベントリスナーブレークポイント

  • 「Event Listener Breakpoints」パネルで click, keydown, submit などを選択
  • 指定イベントが発生した瞬間に、対応するリスナー内で停止

💡 活用例:

  • 「ボタンをクリックしても反応しない」→ click イベントブレークポイントで、正しくイベントが発火しているか確認
  • 「DOMが勝手に書き換わる」→ DOM変更ブレークポイントで、どのスクリプトが操作しているか突き止める

6.2 ステップ実行で処理を追う

ブレークポイントで停止した後は、「ステップ実行」ボタンで 1行ずつ処理を進めながら実行の流れを観察できます。

ステップ実行の種類:

  • ▶️ Resume:次のブレークポイントまで一気に進む
  • ⬇️ Step over(次の行へ):関数呼び出しを飛ばして次の行へ進む
  • ↪️ Step into(関数内部へ):関数の中に入って処理を追う
  • ⬆️ Step out(関数から抜ける):今いる関数を抜けて外側へ戻る

➡ 関数のネストが深いときに特に有効!


6.3 コールスタック、スコープ、ウォッチの使い方

ブレークポイントで停止中は、画面右側に以下の情報が表示されます。

コールスタック(Call Stack)

  • 現在の関数が、どの関数の中から呼ばれてきたのかを表示
  • 上位の関数に遡ってコードを確認可能

スコープ(Scope)

  • 現在の関数内で有効な変数(ローカル・クロージャ・グローバルなど)を一覧表示
  • 変数の現在の値も確認できる

ウォッチ(Watch)

  • 任意の式や変数を手動で登録
  • 実行中に常に値をモニタリングできる

💡 使いどころ:

  • user オブジェクトが意図通りにセットされているかウォッチで確認
  • 関数が意図しない引数で呼ばれているときに、コールスタックをさかのぼって原因を特定

📝 まとめ

  • Sourcesパネルは、本格的なステップデバッグの場であり、処理の流れやバグの原因を精密に特定できる
  • ブレークポイントは、行だけでなく DOM、XHR、イベントなど多様な条件で設定可能
  • コールスタックとスコープ表示を活用して、変数の状態と処理の文脈を確認できる
  • ウォッチ機能で特定の値を常時監視することで、状態の変化に敏感なバグも追いやすくなる

mh

Related Posts

現場で使えるChrome DevTools実践ガイド 第11章:アクセシビリティの確認

現場で使えるChrome DevTools実践ガイド 第10章:Device Modeでのレスポンシブ検証

You Missed

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第6章:Cloud Shellの活用:GCPを「どこからでも手軽に操作できる秘密基地」

  • 投稿者 mh
  • 6月 6, 2025
  • 5 views

Kubernetes Learning 第32章:Helmの基本操作(install, upgrade, rollback)~マニフェスト管理をもっと効率よく、自動化するために~

  • 投稿者 mh
  • 6月 5, 2025
  • 8 views

現場で使えるChrome DevTools実践ガイド 第11章:アクセシビリティの確認

  • 投稿者 mh
  • 6月 5, 2025
  • 11 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第5章:Cloud SDKとgcloudコマンド:GCPを「キーボードから操る」魔法のツール

  • 投稿者 mh
  • 6月 4, 2025
  • 20 views

Kubernetes Learning 第31章:コンテナのセキュリティ対策(PodSecurityなど)~Kubernetes環境を守るために最低限知っておきたいこと~

  • 投稿者 mh
  • 6月 4, 2025
  • 24 views

現場で使えるChrome DevTools実践ガイド 第10章:Device Modeでのレスポンシブ検証

  • 投稿者 mh
  • 6月 4, 2025
  • 25 views