【问题标题】:Using Xdebug with Netbeans or Komodo fails when connecting to Mysql连接到 Mysql 时,将 Xdebug 与 Netbeans 或 Komodo 一起使用会失败
【发布时间】:2012-10-30 18:39:12
【问题描述】:

我正在尝试让 Ne​​tBeans 或 Komodo IDE 远程调试 PHP。我在开发机器上安装了一个远程网站,这是一台运行 Mountain Lion 的 Mac。 Xdebug 已安装。本地机器上的网站在浏览器中正常运行。

但是,对于 NetBeans 和 Komodo IDE,当单步执行代码时,执行 mysqli_connect 的尝试会失败。在 NetBeans 中有以下错误消息:

发生套接字异常如果您有任何 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 的两个不同版本。会不会和我的问题有关?

【问题讨论】:

  • 例如,您在 komodo ide 中的 xdebug 日志是什么?您可以发布您的 xdebug 设置吗?
  • 您的 xdebug 日志和 xdebug 设置是什么?为什么会有不同的版本?文件夹的版本号一样吗?
  • 在哪里可以找到 xdebug 设置?
  • 我不知道为什么在不同的位置有两个版本。从它们的大小来看,它们绝对是不同的文件。这是关于为什么有两个的理论:(1)OS X 包含 xdebug.so(我已经将它发送到某个地方)。那将是 /opt/local 版本。 (2) 我很久以前在尝试设置 xdebug 时安装了另一个。请注意:这是我的理论,未经证实。
  • 您可以在 php.ini 中找到 xdebug 设置。最好的办法是从最新版本编译它。

标签: mysql netbeans xdebug remote-debugging komodo


【解决方案1】:

您需要确保您正在运行 一个 版本的 Xdebug - 并确保这是最新版本(目前为 2.2.1)。如果您仍然可以重现此问题,请在 http://bugs.xdebug.org 提交错误报告,并附上简短的示例脚本(包含所有代码 + 数据!)以及使用该脚本进行调试会话的远程调试日志(参见 http://xdebug.org/docs/all_settings#remote_log on如何制作这样的日志)。

【讨论】:

  • 我安排使用 xdebug 的每个实例。结果我认为 OS X 附带的是 2.1.2,而我安装的是 2.1.3。我从 ActiveState 获得的后一个版本,我想将它与 Komodo 一起使用,所以我认为那个版本应该可以工作。我将稍微设置一下 remote_log,看看它提供了什么。
  • 我尝试获得更新版本的 xdebug,但它似乎获得了我必须自己构建的最新版本。到目前为止我发现的构建指令在 OS X 上不起作用。我找到了一些,但显然需要 XCode 来提供 c 编译器。无论如何,我回到 ActiveState 网站并下载了他们现在拥有的版本,这与我不久前刚刚获得的版本相比有所不同。将其放置到位并运行 phpinfo 表明它是 2.2.0-komodo。我认为这应该可行,并将很快发布更新。
  • 万岁!在 2.2.0-komodo 中,单步调试现在可以正确执行 mysqli_connect 语句。不仅如此,NetBeans 中的远程调试也可以正常工作。所以我可以将此标记为已接受的答案,除了我不需要 xdebug 2.2.1,但 xdebug 2.2.0-komodo 就足够了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-09
  • 2013-12-15
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
相关资源
最近更新 更多