PhpStorm 2021.3 Help

调试

该页面仅在启用PHP插件时可用。PHP插件与PhpStorm 捆绑在一起并默认激活。如果插件被禁用,请在设置/首选项的已安装选项卡上启用它。插件页面,如管理插件中所述。

使用此页面配置 Xdebug 和 Zend 调试器的行为。

物品

描述

预配置

该区域显示了安装调试器、生成小书签的简要指南,您将通过这些小书签通过控制调试器 cookie 来启动/停止调试会话,以及启动零配置调试

外部连接

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

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

  • Break at first line in PHP scripts : 选中此复选框可在调试器与 PhpStorm 之间的连接建立后立即停止(而不是在到达第一个断点之前自动运行)。或者打开运行 | 在主菜单中的 PHP 脚本选项中的第一行中断。

  • 最大限度。同时连接使用此旋转框来限制可以同时处理的外部连接的数量。

Xdebug

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

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

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

    xdebug.client_port="<Xdebug 连接的端口(默认为 9003)>"
    xdebug.remote_port="<Xdebug 连接的端口(默认为 9000)>"

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

  • 可以接受外部连接:选中此复选框以使 PhpStorm 能够通过调试端口字段中指定的端口接受来自 Xdebug 引擎的任何传入连接。

  • Resolve breakpoint if it is not available on the current line (Xdebug 2.8+) : 如果选中,将在 PhpStorm 中启用对 Xdebug断点解析机制的支持。在这种机制下,调试器评估 PHP 是否可以为当前行生成内部可执行字节码。如果没有为一行生成这样的代码,则无法命中相应的断点。Xdebug 将扫描最多 5 个后续行,并在可执行代码所在的行停止。Xdebug 2.8 及更高版本支持解析断点。

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

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

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

Zend 调试器

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

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

  • 可以接受外部连接:选中此复选框以使 PhpStorm 能够通过调试端口字段中指定的端口接受来自 Zend 调试器引擎的任何传入连接。

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

  • 自动检测IDE IP:选择该复选框时,PHPSTORM会通过debug_host参数检测要发送到Zend调试器的所有主机IP地址。所有检测到的 IP 地址都列在右侧的字段中。当您使用VagrantVirtualBox或其他虚拟化工具时,自动检测 IP 地址很有帮助。

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

  • 忽略 Z-Ray 系统请求:如果来自Z-Ray 系统的请求因过于频繁地调用 PhpStorm 调试器而惹恼您,请选中此复选框。

评估

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

  • 值提示和 Watches Frame 中的安全评估模式

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

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

    有关详细信息,请参阅 评估表达式

  • 从评估上下文导入命名空间和“使用”语句:选中此复选框时,在调试会话期间,PhpStorm 知道当前命名空间和执行点处所有导入的命名空间。此信息用于计算和显示 WatchesEvaluate 表达式,以确保 PhpStorm 调试评估与 PHP 代码执行的实际结果相同。

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

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

    命名空间太\汽车;类汽车{} $my_car = new Car(); 回声 $my_car instanceof Car;

    如果选择了Import namespace and use statements...复选框,则评估$my_car instanceof Car表达式和$my_car instanceof Car监视也将显示以下结果:

    ps_debug_import_namespace_on.png

    但是,如果您清除该复选框,WatchesEvaluate Expression将在全局上下文中执行。这意味着$my_car instanceof Car您将需要使用完全限定的类名来代替$my_car instanceof \Too\Car\Car

高级设置

  • 从部署配置中检测路径映射

    • 选中此复选框后,PhpStorm 会尝试从服务器访问配置部署配置)中检索路径映射以在远程环境中进行调试。

    • 清除该复选框后,您必须手动指定路径映射。

    有关详细信息,请参阅验证调试引擎的配置和配置远程 PHP 解释器

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

    • 通过单击所需可执行代码行处的装订线来设置断点。有关详细信息,请参阅断点

    • 设置/首选项对话框 ( Ctrl+Alt+S) 中,转到PHP | 调试并在External Connections区域中,选中Break at first line in PHP scripts复选框。

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

    如果清除该复选框,则不会建立调试会话,并且 PHP 脚本只是执行而不被挂起。

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

  • Notify if breakpoint was resolved to a different line (Xdebug 2.8+):如果选中,PhpStorm 会在断点解决时显示通知。请注意,您需要启用 Xdebug 断点解析才能使其正常工作。

最后修改:2021 年 8 月 31 日