質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

PhpStorm

PhpStormは、JetBrains社が提供しているPHP向けのIDEです。同社の製品であるWebStormの機能を内包しており、優秀なコード補完やコード分析など多彩な機能を備えています。

Q&A

0回答

577閲覧

PHPStormでXdebugのステップ実行をしようとするとリモートからのレスポンスを受け付けない。

unamu

総合スコア13

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

PhpStorm

PhpStormは、JetBrains社が提供しているPHP向けのIDEです。同社の製品であるWebStormの機能を内包しており、優秀なコード補完やコード分析など多彩な機能を備えています。

0グッド

0クリップ

投稿2019/04/15 10:47

解決したい現象

PHPStormからPHPUnitテストをデバック実行すると、Break at first line in php scriptでは、ブレークできるのですが、それをStep OutするとPHPStormのデバック実行が下記画像のようにリモートからのレスポンスを待機しているような状態から動かなくなります。
この状態を、PHPStormで問題無くステップ実行できる解決方法をご教示頂きたいです。
イメージ説明

ちなみに別のXdebugクライアントである、MacGDPpでListenしておき、PHPStormでPHPUnitテストを通常実行すると、MacGDPpで各ブレークポイントで止めることができ、Step Out等のステップ実行も問題無くできます。

xdebug.remote_log

Break at first line in php scriptの時の最後のレスポンスLog

[1] [1] <- context_get -i 17 -d 0 -c 2 [1] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="context_get" transaction_id="17" context="2"></response> [1]

その後 Step Outした時に追加されるLog

[1] <- step_out -i 18 [1] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="step_out" transaction_id="18" status="break" reason="ok"><xdebug:message filename="file:///var/www/html/laravel/tests/Feature/ExampleTest.php" lineno="19"></xdebug:message></response> [1]

リモートからのレスポンスを待機している時のPortの状態

イメージ説明

リモート環境

docker for mac で php:7.2-fpm イメージにXdebug v2.7.1を追加しています。
イメージ説明
WEBサーバーはありません。

Xdebugの設定

xdebug support => enabled xdebug.auto_trace => Off => Off xdebug.cli_color => 0 => 0 xdebug.collect_assignments => Off => Off xdebug.collect_includes => On => On xdebug.collect_params => 0 => 0 xdebug.collect_return => Off => Off xdebug.collect_vars => Off => Off xdebug.coverage_enable => On => On xdebug.default_enable => On => On xdebug.dump.COOKIE => no value => no value xdebug.dump.ENV => no value => no value xdebug.dump.FILES => no value => no value xdebug.dump.GET => no value => no value xdebug.dump.POST => no value => no value xdebug.dump.REQUEST => no value => no value xdebug.dump.SERVER => no value => no value xdebug.dump.SESSION => no value => no value xdebug.dump_globals => On => On xdebug.dump_once => On => On xdebug.dump_undefined => Off => Off xdebug.extended_info => On => On xdebug.file_link_format => no value => no value xdebug.filename_format => no value => no value xdebug.force_display_errors => Off => Off xdebug.force_error_reporting => 0 => 0 xdebug.gc_stats_enable => Off => Off xdebug.gc_stats_output_dir => /tmp => /tmp xdebug.gc_stats_output_name => gcstats.%p => gcstats.%p xdebug.halt_level => 0 => 0 xdebug.idekey => PHPSTORM => PHPSTORM xdebug.max_nesting_level => 256 => 256 xdebug.max_stack_frames => -1 => -1 xdebug.overload_var_dump => 2 => 2 xdebug.profiler_aggregate => Off => Off xdebug.profiler_append => Off => Off xdebug.profiler_enable => Off => Off xdebug.profiler_enable_trigger => Off => Off xdebug.profiler_enable_trigger_value => no value => no value xdebug.profiler_output_dir => /tmp => /tmp xdebug.profiler_output_name => cachegrind.out.%p => cachegrind.out.%p xdebug.remote_addr_header => no value => no value xdebug.remote_autostart => On => On xdebug.remote_connect_back => Off => Off xdebug.remote_cookie_expire_time => 3600 => 3600 xdebug.remote_enable => On => On xdebug.remote_handler => dbgp => dbgp xdebug.remote_host => docker.for.mac.localhost => docker.for.mac.localhost xdebug.remote_log => /tmp/xdebug.log => /tmp/xdebug.log xdebug.remote_mode => req => req xdebug.remote_port => 9001 => 9001 xdebug.remote_timeout => 200 => 200 xdebug.scream => Off => Off xdebug.show_error_trace => Off => Off xdebug.show_exception_trace => Off => Off xdebug.show_local_vars => Off => Off xdebug.show_mem_delta => Off => Off xdebug.trace_enable_trigger => Off => Off xdebug.trace_enable_trigger_value => no value => no value xdebug.trace_format => 0 => 0 xdebug.trace_options => 0 => 0 xdebug.trace_output_dir => /tmp => /tmp xdebug.trace_output_name => trace.%c => trace.%c xdebug.var_display_max_children => -1 => -1 xdebug.var_display_max_data => -1 => -1 xdebug.var_display_max_depth => -1 => -1

PHPStormの設定

Debug portは9001でxdebug.remote_portと合っています。
イメージ説明

Path mappingsはプロジェクトとリモート環境で合っています。
イメージ説明

Docker ComposeでPHPUnitテストを実行しています。
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問