提问人:Vit Bernatik 提问时间:8/27/2023 更新时间:8/30/2023 访问量:18
使用 xdebug zend 将 Eclipse PHP 调试为“Web 应用程序”不会在断点处停止
Eclipse PHP debugging as "Web application" with xdebug zend is not stopping at breakpoints
问:
我用apache服务器配置了PHP Xdebug,并使用Chrome。它正在工作,但后来我使用了其他配置,断点停止工作。
所以最初我的工作配置是这样的:
我的php.ini:
[xdebug]
zend_extension="c:/wamp64/bin/php/php8.0.26/zend_ext/php_xdebug-3.2.2-8.0-vs16-x86_64.dll"
;xdebug.mode allowed are : off develop coverage debug gcstats profile trace
xdebug.mode =debug
xdebug.output_dir ="c:/wamp64/tmp"
xdebug.show_local_vars=0
xdebug.log="c:/wamp64/logs/xdebug2.log"
;xdebug.log_level : 0 Criticals, 1 Connection, 3 Warnings, 5 Communication, 7 Information, 10 Debug Breakpoint
xdebug.log_level=7
;VBE change: ;xdebug.profiler_output_name=trace.%H.%t.%p.cgrind
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.use_compression=false
xdebug.client_port = 9002
xdebug.client_host = localhost
Window->Preferences->PHP->Server->默认PHP Web服务器
“服务器”选项卡:
“调试器”选项卡:
窗口->首选项->PHP->调试
Window->Preferences->PHP->Debug->Debuggers->XDebug
然后,单击“Run->Debug as->PHP Web Application”
然后它提供“启动URL”对话框。我不得不将路径从
更改为http://localhost/wp_leo/1/vbe_get_mem.php
http://localhost/3/1/vbe_get_mem.php
因为 Eclipse 使用项目名称,但我在服务器上的实际路径只是 .wp_leo
3
然后第一次断点起作用。但后来我玩了配置,在某个时候断点停止工作了。我只得到“在第一行中断”,因为它是在 Window->Preferences->PHP->Debug 中检查的。但所有其他断点都被忽略了。所以问题是为什么我的断点被忽略了??????????
答:
因此,在一些日食疯狂点击之后,我转到了xdebug.log文件。寻找,我很幸运有命令.所以我发现:breakpoint
breakpoint_set
[22360] [Step Debug] <- breakpoint_set -i 897 -t line -f file:///http://localhost/3/1/vbe_get_mem.php -n 18
[22360] [Step Debug] -> <response xmlns="urn:debugger_protocol_v1" xmlns:xdebug="https://xdebug.org/dbgp/xdebug" command="breakpoint_set" transaction_id="897" id="223600006"></response>
路径实际上是正确的路径。但它不起作用。我想知道这也许是奇怪的组合。所以我在CLI模式下尝试了我的调试器,其中断点工作并且有使用的路径:/http://localhost/3/1/vbe_get_mem.php -n 18
file:///
http://
[20048] [Step Debug] <- breakpoint_set -i 967 -t line -f file:///C:%5Cwww%5C3%5C1%5Cvbe_get_mem.php -n 18
这看起来很狂野,但正在工作。所以用 代替 .我的文档根目录是,服务器上的路径是 。%5C
/
c:/www/
3/1/vbe_get_mem.php
实际上,我尝试配置的一件事是映射路径。因为我不喜欢我调试的每个新文件都使用项目名称而不是服务器上的实际路径提供了错误的路径,我需要手动重写它......所以我玩了 Window->Preferences->PHP->Servers->Default PHP Web Server->Tab “Path Mapping”。也许那是个错误。解决方案是删除那里的所有内容并将其设置为空。喜欢这个:
然后断点开始工作。xdebug.log 中的路径开始看起来与 CLI 模式下相同:
[16188] [Step Debug] <- breakpoint_set -i 1972 -t line -f file:///C:%5Cwww%5C3%5C1%5Cvbe_get_mem.php -n 9
顺便说一句,请注意,在首次运行调试时,它会要求输入文件夹,并使用项目名称而不是实际的服务器目录。因此,您需要在第一次启动调试器时重写该版本。或者我找到了如何在项目设置中修复调试路径的解决方案
祝你好运。。。
路径映射应为目录,而不是 URI(如 )。http://
评论