gpt4 book ai didi

php - XDebug PHP Eclipse - 错误没有找到合适的文件或没有选择文件

转载 作者:可可西里 更新时间:2023-11-01 12:33:41 26 4
gpt4 key购买 nike

我正在尝试远程调试一个 php web 应用程序,但每当我尝试启动调试 session 时,Eclipse 都会给我一堆弹出窗口:

调试器错误:“没有找到合适的文件或没有选择文件。调试已终止”

enter image description here

这是我当前的 Xdebug 2.2.1 配置:

[xdebug]
xdebug.remote_enable=1
xdebug.remote_autostart=0
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"

这是我的 Eclipse 4.2.1 调试配置:

enter image description here

Xdebug 已正确安装,我在 phpinfo() 输出中看到它已启用。

最佳答案

我尝试调试 Eclipse 以了解我的 Mac OS X 中发生了什么。
首先找到当前Eclipse运行的进程:

$ ps -ef | grep eclipse
501 15160 373 0 4:21PM ?? 2:57.19 /Users/myuser/apps/eclipse/Eclipse.app/Contents/MacOS/eclipse -psn_0_651423

然后跟踪 Eclipse 系统调用:

$ sudo dtruss -fp 15160

[... omissis ...]
accept(0xA0, 0x1224C37E8, 0x1224C37E4) = 103 0
setsockopt(0x67, 0xFFFF, 0x1002) = 0 0
setsockopt(0x67, 0xFFFF, 0x1001) = 0 0
read(0x67, "4\0", 0x1) = 1 0
read(0x67, "7\0", 0x1) = 1 0
read(0x67, "7\0", 0x1) = 1 0
read(0x67, "\0", 0x1) = 1 0
read(0x67, "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<init xmlns=\"urn:debugger_protocol_v1\" xmlns:xdebug=\"http://xdebug.org/dbgp/xdebug\" fileuri=\"file:///opt/local/var/db/php5/pear/pear-ini.php\" language=\"PHP\" protocol_version=\"1.0\" appid=\"14961\" idekey=\"ECLIPSE_DB", 0x1DD) = 477 0
read(0x67, "\0", 0x1) = 1 0
[... omissis ...]

在这里,我捕获了从 xdebug 发送的第一行。
这是 eclipse 正在读取一段 XML 的行。我想这是 DBGp 部分。

 <?xml version="1.0" 
encoding="iso-8859-1"?>
<init xmlns="urn:debugger_protocol_v1"
xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
fileuri="file:///opt/local/var/db/php5/pear/pear-ini.php"
language="PHP"
protocol_version="1.0"
appid="14961"
idekey="ECLIPSE_DB

查看 fileuri 我发现 Xdebug 正在尝试使用 /opt/local/var/db/php5/pear/pear-ini.php 启动调试 session 。文件 pear-ini.php 在我的 eclipse 项目中不存在。

所以我在我的 Eclipse 工作区中创建了一个新项目,在这里我复制了文件 /opt/local/var/db/php5/pear/pear-ini.php

成功了,Eclipse PDT 现在找到了它正在寻找的文件,调试器终于正确启动了。它甚至问我是否愿意切换到调试视角。

结论
如果您遇到这个奇怪的错误:“没有找到合适的文件或没有选择文件。”,那么这就是写入的内容。好的,我的 Eclipse 无法找到该文件,但这也意味着它正在尝试查找其工作区之外的文件。可能是出于某种奇怪的原因从 PHP 引擎加载的文件。在我的例子中,pear-ini.php 是由 pear.ini

自动添加的
$ cat pear.ini 
; Do not edit this file; it is automatically generated by MacPorts.
; Any changes you make will be lost if you upgrade or uninstall php5-pear.
; To configure PHP, edit /opt/local/etc/php5/php.ini.
auto_prepend_file = '/opt/local/var/db/php5/pear/pear-ini.php'

关于php - XDebug PHP Eclipse - 错误没有找到合适的文件或没有选择文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15138311/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com