PhpStorm 2025.2 Help

Debug

使用此页面配置 Xdebug 和 Zend Debugger 的行为。

项目

描述

预配置

此区域显示了安装调试器的简要指南,生成书签工具,您可以通过控制调试器 cookie 启动/停止调试会话 ,并开始 零配置调试

外部连接

在此区域中,指定您希望 PhpStorm 如何处理从未注册为 部署服务器配置的主机和端口接收的连接。

  • 通过未注册的服务器配置忽略外部连接 :选中此复选框以使 PhpStorm 忽略从未注册为部署服务器配置的主机和端口接收的连接。 选中此复选框时,PhpStorm 不会尝试自动创建部署服务器配置。

  • 在PHP 脚本中的第一行中断 :选中此复选框以使调试器在与 PhpStorm 建立连接后立即停止(而不是自动运行直到到达第一个断点)。 或者从主菜单启用 运行 | 在PHP 脚本中的第一行中断 选项。

  • 最大同时连接数 :使用此微调框限制可以同时处理的外部连接数。

Xdebug

使用此区域中的控件配置使用 Xdebug 工具进行调试。

  • 调试端口 :在此字段中,指定 PhpStorm 和 Xdebug 引擎通过的端口。

    此端口号必须与 php.ini 文件中指定的端口号相同:

    xdebug.client_port="<the port (9003 by default) to which Xdebug connects>"
    xdebug.remote_port="<the port (9000 by default) to which Xdebug connects>"

    默认情况下,Xdebug 2 监听端口 9000 。 对于 Xdebug 3 ,默认端口已从 9000 更改为 9003 。 您可以通过逗号分隔指定多个端口。 默认情况下, 调试端口 值设置为 9003,9000 ,以使 PhpStorm 同时监听两个端口。

  • 可以接受外部连接 :选中此复选框以启用 PhpStorm 接受通过 调试端口 字段中指定的端口从 Xdebug 引擎接收的任何传入连接。

  • 如果断点在当前行不可用,则解析断点(Xdebug 2.8+) :如果选中,将在 PhpStorm 中启用对 Xdebug 断点解析机制 的支持。 在此机制下,调试器会评估 PHP 是否可以为当前行生成内部可执行字节码。 如果断点所指的行上没有这样的代码,则相应的断点无法命中。 Xdebug 将扫描最多 5 行后续代码,停在有可执行代码的行,并将断点定义更新为该行。

  • 未指定路径映射时,在第一行强制中断 :选中此复选框以使调试器在到达并打开未映射到项目中任何文件的文件时立即停止,在 服务器 页面上。 调试器在此文件的第一行停止,并且 检查/更新变量 显示以下错误消息: 无法在服务器上找到文件的本地副本 <服务器上的文件路径> 和一个链接 单击以设置映射。 单击链接以打开 解决路径映射问题 对话框并将问题文件映射到其本地副本。

    清除此复选框时,调试器在到达并打开未映射的文件时不会停止,文件仅被处理,不会显示错误消息。

  • 如果断点位置与源代码不同,则移动断点到解析位置 :选中此复选框以启用断点位置的自动调整到 Xdebug 实际停止的行。

    请注意,此功能仅在启用 如果断点在当前行不可用,则解析断点(Xdebug 2.8+) 复选框时有效。

  • 当脚本在项目外部时,在第一行强制中断 :选中此复选框以使调试器在到达并打开当前项目外的文件时立即在第一行停止。 清除此复选框时,调试器在打开当前项目外的文件时继续运行。

  • 启用返回函数值调试(Xdebug 3.2+) :选中此复选框以添加一个额外的调试步骤,用于检查立即返回值的函数,而无需存储在中间变量中。

Zend 调试器

使用此区域中的控件配置使用 Zend Debugger 工具进行调试。

  • 调试端口 :在此字段中,指定 PhpStorm 和 Zend Debugger 引擎通过的端口。 在通过 zend_debugger.tunnel_min_portzend_debugger.tunnel_max_port php.ini 文件中指定的 隧道中输入端口号。 有关更多信息,请参阅 Zend Debugger - 配置指令

  • 可以接受外部连接 :选中此复选框以启用 PhpStorm 接受通过 调试端口 字段中指定的端口从 Zend Debugger 引擎接收的任何传入连接。

  • 设置广播端口 :在此字段中,指定调试器设置通过浏览器中的调试工具栏传递的端口。

  • 自动检测IDE IP :选中此复选框时,PhpStorm 检测到所有主机 IP 地址,并通过 debug_host 参数发送到 Zend Debugger。 所有检测到的 IP 地址都列在右侧的字段中。 IP 地址的自动检测在使用 VagrantVirtualBox或其他虚拟化工具时非常有用。

    清除此复选框以阻止主机 IP 地址的自动检测,并在字段中明确指定所需的地址。

  • 忽略Z-Ray 系统请求 :选中此复选框以阻止来自 Z-Ray 系统的请求,如果它们通过过于频繁地调用 PhpStorm 调试器而让您感到烦扰。

评估

  • 在调试控制台中显示数组和对象子级 :选中此复选框以在 控制台窗格中显示数组和对象的输出。 清除此复选框时,不会显示输出。

  • 值提示和监视框架下的安全求值模式:

    • 选中此复选框时,PhpStorm 检查要评估的表达式或代码片段是否包含任何未定义的元素,并通知您检测到的任何差异。

    • 如果清除此复选框,当 PhpStorm 在评估期间遇到任何未定义的元素时,会出现异常。

    有关更多信息,请参见 计算表达式

  • 从求值上下文导入命名空间和'use' 语句 :选中此复选框时,在调试会话期间,PhpStorm 会意识到当前命名空间以及执行点的所有导入命名空间。 此信息用于计算和显示 监视计算表达式 ,以确保 PhpStorm 的调试评估与 PHP 代码执行的实际结果一致。

    默认情况下,复选框处于选中状态。

    执行以下代码的结果是 true (或在浏览器中显示 1):

    namespace Too\Car; class Car{} $my_car = new Car(); echo $my_car instanceof Car;

    如果选中 导入命名空间和 use 语句... 复选框,评估 $my_car instanceof Car 表达式和 $my_car instanceof Car 监视也会显示此结果:

    ps_debug_import_namespace_on.png

    但是,如果清除此复选框, 监视评估表达式将在全局上下文中执行。 这意味着,您需要使用完全限定类名 $my_car instanceof \Too\Car\Car ,而不是 $my_car instanceof Car

  • 启用'toString' 对象视图 :选中此复选框时, 变量 选项卡中的输出会为包含 __toString() 方法的类附加一个渲染的字符串表示。

    启用 toString() 对象视图

    如果出现 Object of class {className} could not be converted to string (xdebug://debug-eval) 错误,请取消选中此复选框。

  • 为类和成员引用启用“…导航”链接 :选中此复选框以显示从 变量 选项卡中的调用元素到回调函数声明的链接 在源代码中

高级设置

  • 检测部署配置的路径映射:

    • 选中此复选框时,PhpStorm 尝试从 服务器访问配置部署配置 )中检索用于远程环境调试的 路径映射

    • 清除此复选框时,您需要手动指定路径映射。

    如需更多信息,请参阅 验证调试引擎的配置配置远程 PHP 解释器

  • 在调试会话完成而不暂停时通知 :选中此复选框以使 PhpStorm 在 零配置调试期间未命中任何断点时显示通知。 如果 路径映射未配置或配置错误 ,或者您未设置任何断点,可能会发生这种情况。 在后一种情况下,您可以执行以下任一操作:

    • 通过单击代码中所需可执行行的边距设置断点。 有关更多信息,请参见 断点

    • 设置 对话框(Ctrl+Alt+S )中,转到 PHP | 调试 ,并在 外部连接 区域中选中 在PHP 脚本中的第一行中断 复选框。

    • 从主菜单启用 运行 | 在PHP 脚本中的第一行中断 选项。

    如果清除此复选框,则不会建立调试会话,PHP 脚本将直接执行而不会被暂停。

  • 通过命令行传递所需的配置选项(仍需手动启用调试扩展) :选中此复选框以通过命令行传递调试器配置选项。

  • 在断点解析到不同的行时通知(Xdebug 2.8+) :如果选中,PhpStorm 会在断点解析时显示通知。 请注意,您需要 启用 Xdebug 断点解析才能使其生效。

最后修改日期: 2025年 9月 26日