Php HHVM中的调试?

Php HHVM中的调试?,php,debugging,xdebug,hhvm,Php,Debugging,Xdebug,Hhvm,在HHVM中运行我的PHP脚本时,我看到我可以传递调试主机和调试端口参数,但我似乎无法确切了解它的功能和使用方法 这些参数是用于调试HHVM本身(或者可能是编译后的PHP本身)还是用于调试PHP脚本?也就是说,是为了调试的方式吗 HHVM可以工作,或者说是像我通常使用XDebug那样用于调试 起初,我试图将它连接到为XDebug设置的IDE,但如果不进行我想在这里询问的白费力气的话,它似乎无法实现任何功能 HHVM的调试参数具体用于什么?我如何使用它们在HHVM中调试我的PHP脚本呢?仔细研究一

在HHVM中运行我的PHP脚本时,我看到我可以传递调试主机和调试端口参数,但我似乎无法确切了解它的功能和使用方法

这些参数是用于调试HHVM本身(或者可能是编译后的PHP本身)还是用于调试PHP脚本?也就是说,是为了调试的方式吗 HHVM可以工作,或者说是像我通常使用XDebug那样用于调试

起初,我试图将它连接到为XDebug设置的IDE,但如果不进行我想在这里询问的白费力气的话,它似乎无法实现任何功能


HHVM的调试参数具体用于什么?我如何使用它们在HHVM中调试我的PHP脚本呢?

仔细研究一下,我发现:这表示:

=--调试主机

运行“调试”模式时,指定要连接到的HPI服务器

=--调试端口

运行“调试”模式时,指定要连接的HPI服务器端口

显然,这些最初是为HPI(Hip-Hop解释器)设计的,后来被HPVM(Hip-Hop虚拟机)取代

奇怪的是,虚拟机帮助说:

-h[--debug host]arg在指定地址连接到调试器服务器

–调试端口arg(=-1)在指定端口连接到调试器服务器

因此,他们似乎重新调整了CLI参数的用途,以指向“调试器”,但在我能找到的任何文档中都没有提到如何使用它们的参数


我还找到了一些指示其工作方式的源代码:

因此,对于来自cillosis的指针,我发现了以下内容:

如果我想从CLI运行脚本,我可以使用
hhvm script\u name.php
。但是,如果我想调试它,我可以运行
hhvm-mdscript\u name.php
,这将使我进入一个调试器来运行脚本


使用
-ms
我可以在服务器模式下运行HHVM。那么,我相信这就是
--debug host
--debug port
所指的。也就是说,如果我在某个地方以服务器模式运行HHVM的一个实例,那么当它以调试模式运行时,我可以从另一个HHVM实例进行连接。我认为。

让远程调试工作起来相当棘手,并且涉及到对文档的一些理解和误解

您必须在服务器端配置他们所谓的“沙箱”

然后,您必须使用另一个通过-m debug-h调用的hhvm实例将调试器连接到正在运行的服务器。然后,您可以使用调试器的全部功能


我写了一篇文章。

看来HHVM正在3.3.0版LTS中添加XDebug。显然它还没有准备好生产。您可以通过将下面列出的xdebug选项添加到server.ini文件来启用它。它可以连接,但通常会为我导致HHVM崩溃

hhvm.xdebug-not-done.enable=1
hhvm.xdebug-not-done.remote_enable=1
hhvm.xdebug-not-done.idekey="PHPSTORM"
hhvm.xdebug-not-done.remote_host="localhost"
hhvm.xdebug-not-done.remote_port=9089
针对:

3.4.0未将xdebug重命名为xdebug。因此,php.ini的xdebug部分应该如下所示:

xdebug.enable=1
xdebug.remote_enable=1
xdebug.idekey="PHPSTORM"
xdebug.remote_host="localhost"
xdebug.remote_port=9089

资料来源:,

有趣。。。从该文档中,并回顾CLI选项,我可以在“调试模式”下运行HHVM。。。所以现在我还有别的事要做。我不知道这是否能让我有所收获,但我们拭目以待。谢谢@Narcissus一篇文章刚刚出现在我的雷达上,可能也很有用,但似乎缺少了一些东西。对我来说不是这样的。如果你使用3.4,我想他们删除了xdebug不做你是对的。我今天也注意到了,并发布了回复。