27

我还没有完全弄清楚这一点。我发现的每篇文档都涵盖了如何使用 xdebug 来调试在 Apache 中运行的脚本。我需要调试一个 php CLI 脚本。

因此,例如,我如何传递 XDEBUG_SESSION_START 变量以启动 xdebug?

我特别想调试一个 CakePHP shell。因此,如果有人对此有任何额外的见解,我将不胜感激。

谢谢。

4

4 回答 4

40

Xdebug 的手册中有一些关于此的注释,例如(引用):

export XDEBUG_CONFIG="idekey=session_name"
php myscript.php

如果您使用 Eclipse PDT 来开发和调试您的 PHP 脚本,那么 Apache 或 CLI 之间没有太大区别:配置完全相同,您不必配置 Web 服务器,也无需指定 URL;相反,您必须指明 PHP 可执行文件的路径。

关于XDEBUG_SESSION_START变量:嗯,你在“调试模式”下启动整个脚本,所以你没有任何“调试会话”的概念,我会说。


例如,这就是Window > Preference > PHP > PHP executables我现在的样子,右边是我点击Edit第一个按钮时得到的结果:


(来源:pascal-martin.fr(来源:pascal-martin.fr
   

debug configurations窗口:


(来源:pascal-martin.fr

并启动调试:它只是工作:


(来源:pascal-martin.fr


希望这可以帮助 :-)

否则,您遇到什么具体问题?

于 2009-12-22T16:23:06.007 回答
9

如果您使用 bash(或类似的 shell),这个小脚本可能会派上用场:

alias drush-debug=drd
function drd {
    export XDEBUG_CONFIG="idekey=cli_session"
    export SERVER_NAME="developer.machine"
    export SERVER_PORT="9000"
    drush "$@"
    unset XDEBUG_CONFIG
    unset SERVER_NAME
    unset SERVER_PORT
};

或按照以下评论员的建议

alias drd='XDEBUG_CONFIG="idekey=PHPSTORM" drush "$@"'

这样您就不必在每次要调试时手动设置和取消设置触发器变量。

于 2013-02-11T16:43:41.217 回答
4

只需将以下部分放入您的 php.ini

[XDebug]
xdebug.max_nesting_level = 200
xdebug.remote_enable=1
xdebug.remote_port=9000
;xdebug.profiler_enable=1
xdebug.idekey=PHPSTORM
xdebug.remote_autostart=1

并用您的 ide 密钥替换 PHPSTORM

于 2014-12-10T10:24:09.827 回答
1

对于 Windows 和 Visual Studio Code,以下是如何继续:

  1. 从https://xdebug.org/download下载 xdebug 。例如 php 7.4 Windows 64bit https://xdebug.org/files/php_xdebug-2.9.5-7.4-vc15-nts-x86_64.dll

  2. 将 xdebug dll 复制到您的 php 扩展目录 (ext)。

  3. 添加到 php.ini 的末尾

    [XDebug]
    zend_extension=php_xdebug-2.9.5-7.4-vc15-nts-x86_64.dll

    xdebug.remote_enable=1
    xdebug.remote_autostart=1
  1. 打开 VSCode 并安装https://marketplace.visualstudio.com/items?itemName=felixfbecker.php-debug

  2. 在 VSCode 中打开项目工作区,转到运行选项卡,单击齿轮并添加这些行

    {
      "name": "listen CLI",
      "type": "php",
      "request": "launch",
      "port": 9000
    },
    {
      "name": "run CLI",
      "type": "php",
      "request": "launch",
      "program": "${file}",
      "cwd": "${fileDirname}",
      "port": 9000
    }
  1. 在要调试的脚本中放置断点

  2. 选择“运行 CLI”并单击“开始调试”

调试愉快!

于 2020-05-18T08:08:49.393 回答