在即时模式下调试
PhpStorm 支持在Just-In-Time (JIT)模式下使用 Xdebug,因此它不会一直附加到您的代码,而是仅在发生错误或抛出异常时才连接到 PhpStorm。根据使用的 Xdebug 版本,此操作模式通过以下设置切换:
Xdebug 2 使用xdebug .remote_mode设置,必须设置为
jit
.Xdebug 3 使用xdebug.start_upon_error设置,必须设置为
yes
.
该模式可用于调试命令行脚本和 Web 服务器调试。
配置 Xdebug 以在 Just-In-Time 模式下使用
根据您是要调试命令行脚本还是使用 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
字段中键入。当您单击OK时,您将返回到CLI Interpreters对话框,其中显示配置选项字段
-dxdebug.remote_mode=jit
(对于 Xdebug 2)或-dxdebug .start_upon_error=yes
(对于 Xdebug 3)。
Web服务器调试
从主菜单中,选择
。在打开的验证远程环境中,选择要验证调试器的 Web 服务器。
选择本地 Web 服务器或共享文件夹以检查与本地 Web 服务器关联的调试器。
创建验证脚本的路径:在此字段中,指定将在其中创建验证脚本的服务器文档根目录下的文件夹的绝对路径。对于Inplace类型的 Web 服务器,该文件夹位于项目根目录下。
该文件夹必须可通过http访问。
验证脚本的 URL:在此字段中,输入将在其中创建验证脚本的文件夹的 URL 地址。如果项目根目录映射到可通过http访问的文件夹,您可以指定项目根目录或其下的任何其他文件夹。
选择远程 Web 服务器以检查与远程服务器关联的调试器。
创建验证脚本的路径:在此字段中,指定将在其中创建验证脚本的服务器文档根目录下的文件夹的绝对路径。该文件夹必须可通过http访问。
部署服务器:在此字段中,指定类型为本地服务器或远程服务器的服务器访问配置以访问目标环境。有关详细信息,请参阅配置与 Web 服务器的同步。
从列表中选择一个配置或单击“部署”对话框中的“浏览 ” 。
单击验证让 PhpStorm 创建一个验证脚本,将其部署到目标远程环境,并在那里运行它。
打开报告为已加载并与 Xdebug 关联的php.ini文件。
在php.ini文件中,找到该
[xdebug]
部分。将 的值
xdebug.start_upon_error
从默认值更改default
为yes
。将 的值
xdebug.remote_mode
从默认值更改req
为jit
。
调试会话
设置断点并启动调试会话,如启动调试会话或使用 PHP 网页调试配置进行调试中所述。
Xdebug 在以下两种情况下连接到 PhpStorm:
发生错误时。在这种情况下,Xdebug 会在错误条件之后的那一行停止。这样做的原因是 PhpStorm 首先必须运行错误代码才能知道有什么问题。
当抛出异常时。如果处理了异常,Xdebug 会在
catch
块的第一行(如果有)或在finally
块处中断。