Visual Studio CodeでPHPデバッグをおこなう方法(その5)

かなりブランクがあいてしまいましたが、前回(その4)では、「XDebug」と「Visual Studio Code」を連携させるところまでの説明をおこないましたが、実際にどのようにデバッグをおこなうのかの説明はできておりませんでしたので、今回(その5)では「Visual Studio Code」を使用して実際にデバッグをおこなっていきたいと思います。

今回は説明用に以下のようなシンプルなphpのソースコードを用意しました。
C:\xampp\htdocs\debugtest\index.php

<?php

$a = 2;
$b = 3;
$c = 0;

$c = $a + $b;

echo $c;

?>

$aと$bの合計(計算結果)が$cに代入され、表示されます。

デバッグの基本的な流れとしては、任意の行にブレークポイントを設定して、行単位で変数の中身などの確認をおこないながら処理を追っていきます。

今回は上記のソースコードの3行目($a = 2;)の行にブレークポイントを設定してみたいと思います。

Visual Studio Codeでブレークポイントを設定するには行番号の横の空白部分をクリックします。下図のように赤色の丸が表示されたら、ブレークポイントの設定完了です。

次に「Listen for XDebug」ボタンをクリックします。

画面上部に一時停止(Pause)ボタンやステップオーバー(Step Over)ボタンなどが配置されたデバッグ用の操作バーが表示されます。

この状態で以下のURLにアクセスします。
http://localhost/debugtest/

ブレークポイントの設定した箇所で処理は停止しているため、ブラウザ上ではなにも表示されず、「localhostを待機しています」と表示されます。


ステップオーバー(Step Over)ボタンで処理を1行ずつすすめていきます。下図は
5行目まで処理をすすめた時点のスクリーンショットです。
現時点の停止箇所は黄色の矢印が示しています。
画面左横のLocalsではその時点での変数の中身の確認がおこなえます。
$aには2が代入され、$bには3が代入されていることを示しています。
この時点では$cは初期化されていません(uninitialized)。

さらに処理をすすめていきます。下図は9行目まで処理をすすめた時点のスクリーンショットです。
この時点では、$cに、$aと$bの合計(計算結果)が代入されたことが確認できます。

処理がひととおり終了しましたので、出力結果がブラウザ上で表示されます。

以上がデバッグの基本的な流れとなります。

上記の説明では「ステップオーバー(Step Over)」のみ使用しましたが、
実際のデバッグ作業では、状況に応じて、「ステップイン(Step In)」や「ステップアウト(Step Out)」なども併用します。各機能の使い分けについては下記の通りです。

■ステップオーバー(Step Over)
ステップオーバーは1行単位で処理をすすめていくことができます。処理の途中で関数があった場合、関数の内部処理にまで入りません。

■ステップイン(Step In)
ステップインは1行単位で処理をすすめていくことができます。処理の途中で関数があった場合、関数の内部処理に入り、関数内部の処理も1行単位で処理を止めながらすすめていくことが可能です。

■ステップアウト(Step Out)
ステップアウトは、現在実行中の関数の呼び出し元に戻るまで処理をすすめます。ステップインで関数の内部処理に入ったけれど、その関数に問題はなさそうな場合、ステップインする前の状態に戻ることが可能です。

このようにデバッグ機能を使用することにより処理の流れをステップで確認をおこなうことができますので、処理フローや変数の中身の確認等の手間が軽減され、より効率よく開発をすすめることが可能になります。

木曜担当:nishida



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム