在HHVM中调试?

Nar*_*sus 14 php debugging xdebug hhvm

在HHVM中运行我的PHP脚本时,我看到我可以传递调试主机和调试端口参数,但我似乎无法确切地知道它的作用以及如何使用它.

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

起初我尝试将它连接到我为XDebug设置的IDE,但这似乎没有做任何事情,所以没有进行疯狂的追逐,我想我会问这里.

什么是HHVM的调试参数,确切地说,我如何使用它们来调试HHVM中的PHP脚本呢?

Yer*_*ers 13

远程调试工作相当棘手,涉及一些问题和对文档的误解.

您必须在服务器端配置他们称为"沙箱"的内容.

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

我写了一篇描述这个过程文章.


小智 6

似乎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
Run Code Online (Sandbox Code Playgroud)


Jer*_*ris 2

对此进行了一些研究,我发现了这个: https: //github.com/dpaneda/hiphop-php/blob/master/doc/command.compiled上面写着:

\n
\n

= --调试主机

\n

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

\n

= --调试端口

\n

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

\n
\n

显然,这些最初是用于 HPHPi(Hip Hop 解释器)的,后来被 HPVM(Hip Hop 虚拟机)所取代。

\n

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

\n
\n

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

\n

\xe2\x80\x93debug-port arg (=-1) 连接到指定端口的调试器服务器

\n
\n

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

\n

我还找到了一些表明其工作原理的来源: https://github.com/facebook/hhvm/blob/5aee62fc5135b089d5c213a6ac243321555f6672/hphp/test/server/debugger/tests/test_base.inc#L6-L38

\n