XAMPPにXdebugを入れたのにVSCodeのブレークポイントで止まらない現象の解決法

XAMPPとVSCodeの最新版をインストールしてXdebugを導入した際に、過去の設定ではしっかりと機能していたデバッグの機能(ブレークポイント)が効きませんでした…。

解決策がなかなか見つからずに3時間ほど苦戦したのでメモとして残します。

広告

【現象】参考サイト通りに設定したのにブレークポイントが機能しない…?

XAMPPとVSCodeは下記のバージョンをインストールしました。

  • XAMPP:8.0.0 / PHP 8.0.0
  • Visual Studio Code :バージョン1.52.1

各種インストールの方法は下記記事を参考にして進めました。

XAMPP:今さら聞けない!XAMPPをインストールする方法【超初心者向け】
Visual Studio Code: Visual Studio Codeインストール手順<Windows向け>

各種ソフトのインストールは完了したので、次にPHPのデバッグ作業を行うためにXAMPP環境でのデバッグ環境を整えます。
デバッグには「Xdebug」を活用しますので、下記辺りの記事を参考にして設定を行いました。

私の場合は「php_xdebug-3.0.1-8.0-vs16-x86_64.dll」をダウンロードしました。

Xdebugのライブラリダウンロードページ

上記設定を済ませてVSCodeでブレークポイントを張ってデバッグを実行してみましたが、何度試してもブレークポイントで止まらずにそのままページが表示されてしまいました…。

設定を再確認しても間違っている箇所はないため、下記記事なども参考にして色々と試しましたが、いずれも解決には至りませんでした。

phpinfoの内容が解決のヒントに

お手上げ状態で2時間ほど解決策を探していたところ、phpinfoの情報に今まで見なかった下記の記述を見つけました。

Xdebugの設定情報

過去の設定では見た覚えがなかったのでほぼそのままコピペしてGoogleさんで検索してみると、下記のような記事が見つかりました。

参考記事のタイトルにもなっていますが、どうやらXdebugは2系から3系に変わったことで設定の方法が変わったようです。

php.iniファイルへの記述をXdebugの仕様変更に合わせて修正することで問題を解決

具体的にはphp.iniへの記述が下記のように変わったみたいです。

Xdebug2系のphp.iniファイルの記述

[xdebug]
xdebug.remote_enable=1
xdebug.remote_autostart=1

Xdebug3系のphp.iniファイルの記述

[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes

全然違いますね…。

上記に加えて、デフォルトのポート設定も変わったみたいなのでphp.iniのXdebugの設定を下記のように変更しました。

[xdebug]
zend_extension = C:\xampp\php\ext\php_xdebug-3.0.1-8.0-vs16-x86_64.dll
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9000

上記設定後にXAMPPを再起動して再びブレークポイントを試したところ、無事ブレークポイントで処理が止まるようになりました。

ブレークポイントで処理が止まっている

今回の問題は解決策にたどり着ける記事がなかなか出てこなかったので、もし同じような問題が発生して困っている方がいたら参考にしていただきたいです。

広告

9件のコメント

  1. 記事の内容でデバッグできるようになりました。
    助かりました。ありがとうございます!

    1. お役に立てて良かったです!
      なかなか関連記事が見つからないので解決が難しいですよね( ;∀;)

  2. 3時間程、お手上げ状態でしたが、ようやくブレークポイントに止まってくれました!
    この記事のおかげで助かりました!
    感謝致します!!

  3. いろんなサイト通りにやっても上手くいかなかったのが解決しました、ありがとうございます!ほとんどのサイトが1年以内ぐらいの更新にも関わらず……web関係は進むのが早くて難しいですね(´-ω-`;)

    1. お役に立てて良かったです!
      仕様が変わると1日前の記事でも古い記事になってしまいますからね…。
      日々精進の大変な世界です( ;∀;)

  4. 同じ事象で解決策を調べていたところ、たどりつきました。
    無事解決しました。ありがとうございます!

  5. こちらの記事で止まるようになりました・・・!
    ありがとうございました。

kansuke へ返信する コメントをキャンセル

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