Netbeans xDebug 仅在 Mac 上运行一次

Posted

技术标签:

【中文标题】Netbeans xDebug 仅在 Mac 上运行一次【英文标题】:Netbeans xDebug only runs once on Mac 【发布时间】:2012-03-01 04:45:15 【问题描述】:

我在我的 Mac 上运行 Netbeans。我使用 XAMPP 安装了本地服务器并安装了 xDebug。当我在 Netbeans 中进行调试/断点时,我可以让它第一次在 index.js 上运行。但是,在第一次运行之后,除非我重新启动 Netbeans,否则它不会再次附加到 xDebug。

如何确保 Netbeans 始终连接到 xDebug?另外,如何让 Netbeans 调试除索引文件之外的其他内容?

【问题讨论】:

我不确定,如果你能找到任何解决方案。我听说(并且可以从我自己的经验中证实这一点)在 XAMPP 下让 Netbeans + xDebug 在本地正常工作真的很困难。我不知道这是否与 Mac 有关,但在 Windows 上肯定是这样。我的朋友在他的 Linux 上运行 php + xDebug + Netbeans 绝对没有问题,而我在 Windows + XAMPP 上本地运行 xDebug 从来没有成功过,听说其他人也有类似的问题。看来 xDebug 和 XAMPP 似乎并不喜欢对方... @trejder 我已经能够让它在很短的时间内工作,但从未始终如一。我注意到的一件事是,如果您有一个非 www 子域,它将根本不起作用。 对不起,我在这里帮不上什么忙,因为我没有太多使用 xDebug 的经验,而且完全没有使用 Mac。我只是想让你知道我在 Win 上的 localhost 上让它工作时遇到了可怕的问题(并且失败了——Netbeans 无法从 xDebug 捕获任何结果),而我的 Linux 朋友让它几乎无法正常工作-盒子。 【参考方案1】:

在您的 php.ini 中添加以下内容

; XDEBUG Extension

zend_extension = "**ABSOLUTE_PATH_TO_XDEBUG_EXTENSION**"

[xdebug]
xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "**PATH_TO_TMP_DIRECTORY**"

在 NetBeans IDE 中,转到 工具 > 首选项 > PHP > 调试

调试器端口:9000

会话 ID:netbeans-xdebug

检查:停在第一行

打开您的项目。转到项目属性> 运行配置。设置

运行方式:本地网站(在本地网络服务器上运行)

项目网址:http://localhost/PROJECT_PATH/

索引文件:index.php

保存您的项目文件 重启阿帕奇 重启 NetBeans,打开项目,然后

调试 > 调试项目

您应该在浏览器中看到 http://localhost/PROJECT_PATH/index.php?XDEBUG_SESSION_START=netbeans-xdebug 并且 NetBeans 应该在 index.php 的第一行停止

【讨论】:

感谢您的信息。明天我会在工作中试一试,然后告诉你进展如何。【参考方案2】:

可能是 xdebug 版本不兼容的问题。例如,将 xdebug 从 2.2.4 降级到 2.2.3 可以解决问题。 http://bugs.xdebug.org/view.php?id=1038

【讨论】:

【参考方案3】:

尝试删除您的 tmp 目录中的所有文件设置为xdebug.profiler_output_dir

我也遇到过类似的情况,xdebug 只能工作“一次”——在第一个页面加载时。在我清空 tmp 文件夹后,它工作正常。

【讨论】:

以上是关于Netbeans xDebug 仅在 Mac 上运行一次的主要内容,如果未能解决你的问题,请参考以下文章

netbeans 显示“等待连接 (netbeans-xdebug)”

等待连接 (netbeans-xdebug)

Xdebug + XAMPP + Netbeans = 失败。无法让调试器在 Netbeans 中工作

Xdebug 和 Netbeans 没有相互通信

等待连接(netbeans-xdebug)卡住了

无法通过 netbeans 和 xdebug 调试内部页面