[关闭]
@dungan 2019-08-14T06:14:00.000000Z 字数 1654 阅读 134

PHP

PhpStorm 调试技巧


调试面板

打上断点,监听到 debug 请求后,整个 phpstorm 的调试面板就会出现,如下图

左侧的调试按钮说明

从上到下依次对应图中的按钮。

  • Resum Program(F9):运行到下一个断点的位置或执行完程序;例如,你在第20行和25行有两个断点,当前运行至第20行,按F9,则运行到下一个断点(即第25行),再按F9,则运行完整个流程,因为后面已经没有断点了。
  • Pause Program:暂停程序,启用Debug。
  • Stop 'xxx' (Ctrl + F2):中断程序,相当于使用了 exit 或 die。
  • View Breakpoints (Ctrl + Shift + F8):查看所有断点,该按钮会打开 Breakpoint断点管理面板, 该面板的功能介绍我们后面介绍。
  • Mute Breakpoints:使所有断点失效,选择这个后,所有断点变为灰色,程序会正常执行完。如果只想使某一个断点失效,可以在断点上右键取消Enabled,则该行断点失效。

Breakpoint 断点管理

该面板我们可以通过左侧的 View Breakpoints 或在 断点上右键 打开,打开后如下图。

  • Enabled:用来控制断点是否开启。
  • Condition:用来控制当满足某条件时,该断点才起作用,例如上图,我们设置只有当 $giftId < 50 时该断点才生效。
  • Evaluate and log:可以在执行这行代码时计算表达式的值,并将结果输出到控制台。
  • Remove once hit:调试完后删除该断点。
  • Disable until breakpoint is hit:于某些场景的断点,需要其他断点先触发之后再进行触发,可以选择此项。默认为 None。

顶部的调试按钮说明

从上到下依次对应图中的按钮。

  • Show Execution Point (Alt + F10): 如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。
  • Step Over (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。
  • Step Into (F7):步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库(JDK)的方法。
  • Force Step Into (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库(JDK)的方法。
  • Step Out (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
  • Run to Cursor (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点,光标只能位于断点之后才有效。
  • Evaluate Expression (Alt + F8)计算表达式,用来查看当前变量的值。
  • 智能进入(Smart step into):一行代码里有好几个方法,只选择某一个方法进入,程序会弹出一个对话框,我们选择需要的调用处即可。

计算表达式

该操作用在调试过程中计算某个表达式的值。你可以点击该 图标 或者 对变量右键 Evaluate Expression 来计算表达式。

例如,我们可以写一个表达式 !empty($giftId) && !is_array($giftId),用来判断 $giftId 不为空,并且也不为数组类型,写好表达式后,就可以点击 Evaluate 来获取表达式的运行结果。


变量管理

调试面板右侧的 Variables 区域中展示了调试过程中监视的变量,当然你可以通过左上角的 +/- 号来控制你想 watch 的变量,你还可以通过对变量右键 Add To Watchs 将变量添加到该区域。

Variables 区域中的变量,通过右键 set Value 你还可以修改它的值,例如, 你想看到某些场景下不同变量值时代码的行为。

参考链接

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注