在 Just-In-Time 模式下调试
PhpStorm 支持在 即时 (JIT)模式下使用 Xdebug,因此它不会一直附加到您的代码,而仅在发生错误或抛出异常时连接到 PhpStorm。 根据所使用的 Xdebug 版本,此操作模式通过以下设置切换:
Xdebug 2 使用 xdebug .remote_mode设置,必须将其设置为
jit。Xdebug 3 使用 xdebug.start_upon_error设置,必须将其设置为
yes。
该模式可用于调试命令行脚本和 Web 服务器调试。
配置 Xdebug 以使用即时模式
根据您是要调试命令行脚本还是使用 Web 服务器,请使用以下场景之一。
命令行脚本
对于调试命令行脚本,请将自定义 -dxdebug.remote_mode=jit (适用于 Xdebug 2)或 -dxdebug.start_upon_error=yes (适用于 Xdebug 3)指令指定为 附加配置选项:
在 设置 对话框 (Ctrl+Alt+S) 中,前往 。
从 PHP 可执行文件 列表中选择相关的 PHP 解释器,然后单击其旁边的
。
在打开的 CLI 解释器 对话框中,单击
字段旁边的 配置选项 ,在 其他 区域中。
在打开的 配置选项 对话框中,单击
以添加新条目。
在 配置指令 字段中输入
xdebug.start_upon_error,在 值 字段中输入yes。在 配置指令 字段中输入
xdebug.remote_mode,在 值 字段中输入jit。单击 确定 后,您将返回到 CLI 解释器 对话框,其中 配置选项 字段显示
-dxdebug.remote_mode=jit(适用于 Xdebug 2)或-dxdebug .start_upon_error=yes(适用于 Xdebug 3)。
Web 服务器调试
在主菜单中,进入 .
在打开的 验证远程环境 中,选择 Web 服务器以验证调试器。
选择 本地Web 服务器或共享文件夹(L)
放置验证脚本的目录(D)
在此字段中,指定服务器文档根目录下将创建验证脚本的文件夹的绝对路径。 对于 Inplace 类型的 Web 服务器,文件夹位于项目根目录下。
该文件夹必须通过 HTTP 可访问。
指向包含脚本的目录的URL(U)
在此字段中,输入将创建验证脚本的文件夹的 URL 地址。 如果项目根目录映射到通过 HTTP 可访问的文件夹,您可以指定项目根目录或其下的任何其他文件夹。
选择 远程Web 服务器(R)
放置验证脚本的目录(D)
在此字段中,指定服务器文档根目录下将创建验证脚本的文件夹的绝对路径。 该文件夹必须通过 HTTP 可访问。
部署服务器(D)
在此字段中,指定访问目标环境的 Local Server 或 Remote Server 类型的服务器访问配置。 有关更多信息,请参阅 连接到 Web 服务器。
从列表中选择一个配置,或在 Deployment dialog 中单击 浏览
。
单击 验证(V) ,让 PhpStorm 创建一个验证脚本,将其部署到目标远程环境并在那里运行。
打开报告为已加载并与 Xdebug 关联的 php.ini 文件。
在 php.ini 文件中,找到
[xdebug]部分。将
xdebug.start_upon_error的值从默认默认更改为yes。将
xdebug.remote_mode的值从默认req更改为jit。
调试会话
设置断点并启动调试会话,如 启动调试会话或 使用 PHP 网页调试配置进行调试 中所述。
Xdebug 在以下两种情况下连接到 PhpStorm:
当发生错误时。 在这种情况下,Xdebug 会在错误条件之后的那一行停止。 原因是 PhpStorm 必须先运行出错的代码,才能知道有问题。
当抛出异常时。 如果异常被处理,Xdebug 会在
catch块的第一行(如果有)或finally块处中断。