php - 仅在命令行中设置 Xdebug 断点

标签 php command-line centos xdebug centos6

我正在为 PHP 维护脚本苦苦挣扎,我正在寻找一种仅在命令行中使用 xdebug 的方法(如 gdb old-school),但我无法弄清楚如何设置断点,执行一个步骤- 进入,跳过并继续。 Xdebug 已启动并正在运行,如 phpinfo(); 所说。

我找到了很多关于如何使用 Eclipse 和其他工具执行此操作的文档,但没有找到 CLI。谁能帮帮我?我的环境是 Centos 6 和 Bash。

感谢任何帮助。

谢谢!

最佳答案

这实际上是可能的。在 Xdebug 源代码下载中,您会找到一个名为“debugclient”的目录。在这个目录中,您会发现一个非常简单的客户端,它接受原始 DBGP 命令,并以 XML 格式提供输出。要编译,您运行:

  • apt-get install libedit-dev(或等效)
  • ./buildconf
  • ./configure --with-libedit
  • 制作

然后您可以使用 ./debugclient 运行二进制文件。

然后在不同的 shell 上运行以下命令:

  • 导出 XDEBUG_CONFIG="idekey=dr"
  • php -dxdebug.remote_enable=1 yourscript.php

调试客户端会看到这个连接,然后您可以直接发出 DBGP 命令。对于断点,您可以设置:

breakpoint_set -i 1 -t line -f file:///path/to/yourscript.php -n 42

-i 1要求是递增的数字,-f是文件,-n是行号。设置断点后,您可以运行 run -i 2 前进到该行。对于所有其他命令,我建议您参阅 http://xdebug.org/docs-dbgp.php 上的 DBGP 文档。

关于php - 仅在命令行中设置 Xdebug 断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13284795/

相关文章:

php - 安装 PHP 7.3 Zip 扩展

PHP MYSQL 查询组合并添加两个相等的结果

php - 如何在 php 中回显 '

svn - 使用 SVN 查看先前代码的命令

docker - 发生错误 :Nosuch container? 时如何将文件复制到 docker 容器

nginx - 在 Nginx 中包含虚拟主机文件

php - 当日期相同时从 MySQL 获取下一个和上一个

PHP/MySQL关系表咨询

java - I/O 错误异常处理 : Unreachable catch block for IOException. try 语句主体永远不会抛出此异常

linux - 从 zip 文件中删除 .svn 文件