我正在尝试让 NetBeans 或 Komodo IDE 远程调试 PHP。我在开发机器上安装了一个远程网站,这是一台运行 Mountain Lion 的 Mac。Xdebug 已安装。本地机器上的网站在浏览器中正常运行。
但是,对于 NetBeans 和 Komodo IDE,当单步执行代码时,执行 mysqli_connect 的尝试会失败。在 NetBeans 中有以下错误消息:
发生 Socket Exception如果您有任何 Watches,请尝试删除它们并重新启动调试器。如果删除 Watches 没有帮助或您没有任何 Watches,请提交问题并提供重现问题的确切步骤。请附上IDE日志。附加您的项目也将非常有帮助。
我看到其他人报告此错误消息,但未提供任何帮助。
在 Komodo IDE 中,故障发生在同一位置,但根本没有提供错误信息。
NetBeans 中的有趣之处在于,在单步浏览网站的第一页之后,如果我从该点运行代码,它会毫无故障地执行,并且网页会显示在浏览器中!这意味着该问题仅在单步执行时发生。
我在某处看到过有关 NetBeans 中的错误的信息。但是,NetBeans 不应该能够单步执行尝试连接到 mysql 的代码,这似乎很明显。相反,我认为这将是我系统上的一些配置问题。
无论是单步执行还是以任何其他方式运行,Komodo IDE 都会出现同样的故障。它只是没有超过那个点。
但是,请记住,仅在浏览器中运行该站点就可以正常工作。那么是什么导致 Xdebug 单步无法连接到 mysql 呢?
** 附加信息 **
我在我的系统上找到了两个 xdebug.so 实例。
-rwxr-xr-x 1 root admin 274508 Oct 6 2011 /opt/local/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
-rwxr-xr-x 1 root wheel 202672 Sep 20 20:01 /usr/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so
此外,还有一个 /opt/local/var/db/php5/xdebug.ini 引用 /opt/local 路径中的 xdebug.so。/usr/lib 路径中的 xdebug.so 是我认为正在使用的那个,它对应于关于它应该安装在哪里的说明。
这些显然是 xdebug.so 的两个不同版本。这可能与我的问题有关吗?