phpstorm 断点调试debug
吐槽:
其实我对phpstorm的印象并不是很好。
这是我在16年左右使用webstorm时候留下来阴影,占内存大,集成太多用不上的东西,不支持sublime那样的ctrl+d 多选 多编辑的功能。
最近有开始用php做项目,无奈又进入了phpstorm的坑。
一开始其实我是一直都是用vscode的,但是它对php的支持并不是特别好,无法实现ctrl+点击时候(类或函数)时候直接跳转对应文件或说明。
无法快速的阅读框架源码,这个对我来说真的特别难接受,无奈只能放弃vscode,选择phpstorm.
话题开始之前:
其实一开始,我也用不上编辑器断点debug这样的功能。
我都是在代码里面打log来debug的。对于常见的增删查改,这样操作并没有多少问题。
后来开始搞爬虫这种异步编程的东西了,就非常难用这种方式debug了。
这是首先于http协议的问题,都是客户端发起请求后台执行后一次性推送给客户端。爬虫每个环节都需要debug。
我需要的是在代码运行过程中能明确看到代码运行到哪里了,而不是等他结束后一股脑的把debug的log推送到客户端给我。
这个提供的log太多,我还得在一条条的log中排查。无法做到及时定位问题。
进入话题:
- 本地需要提供可以访问的域名(host配置好,当然ip也没问题)
- phpstorm编辑器断点调试需要给本地环境安装xdebug依赖
- phpstorm编辑器需要配置代理服务器
这第一点一般开发环境都是已经配好的,特别是用了xamp,phpstudy这集成开发环境(这里不再深入叙述)
一.安装xdebug:
1、检测本地php环境是否安装了Xdebug,在php 文件输出phpinfo();然后在浏览器ctrl+f 搜索 Xdebug,如果没有说明没有安装。如果有,注意检查以下几个参数是否正常(接下来后面会有说明)
xdebug.remote_enable
xdebug.remote_host
xdebug.remote_port
xdebug.default_enable
xdebug.idekey
xdebug.remote_autostart
xdebug.remote_handler
xdebug.mode=debug
2、如果确定没有安装xdebug,ctrl+a,ctrl+c (全选+复制)本页的所有内容,在浏览器新标签打开链接 https://xdebug.org/wizard 将所有内容黏贴到文本框里面提交,如下图:

点击按钮提交,然后它就会根据你的环境给你安装步骤,不管你的环境是xampp,phpstudy,还是非集成开发环境,它都会给你合适的方案,根据它给的步骤一步步的来就可以。
大概就三个步骤:

3.验证是否安装成功,刷新下刚刚的php页面,查找xdebug,如果存在说明安装成功
4.php.ini配置
[xdebug]
zend_extension = /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so
xdebug.remote_enable =On
xdebug.remote_host= 127.0.0.1
xdebug.remote_port = 9003
xdebug.default_enable=On
xdebug.idekey=PHPSTORM
xdebug.remote_autostart=On
xdebug.remote_handler = "dbgp"
xdebug.mode=debug
这里的端口号,默认是9000,(但是如果冲突的话,也可以改掉)
zend_extension请根据步骤2图二里面的提示来填写
xdebug的安装到此处结束
phpstorm编辑器配置
一、原理
phpstorm本地起一个代理服务器,代理已有可访问的域名。明白吧,这里它只是代理服务器,而不是你代码程序本身的那个服务器。
二、步骤
这里我用的是phpstorm 2020.3版本
1、右上角菜单 phpstorm->preferences->php->languages&&Frameworks->PHP->Debug

xdebug的port保存和xdebug配置时候的一样即可(一定要一样的!!)
2、代理服务器配置:

这里的idekey 必须要和xdebug配置的保存一致,如果不记得了,请回去看看本篇文章xdebug安装的那一小节。
host可以不填,port也必须要和xdebug配置的保存一致.
3.配置debug方案


特重要步骤
必须要去验证下是否可用,它会告诉你当前存在的问题或者是否已经可用,按照他的提示去修复即可。
例如:它提示 url 404,那就是上图的域名或端口不可用,请检查下。

百度到一些博文说谷歌浏览器需要安装Xdebug helper拓展,但是我安装了后从来没有亮过,用感觉不到有什么作用。

其他一些debug细节
以下内容采摘自:https://www.jb51.net/article/140487.htm
1、查看你断点的地方之前一些变量的值
双击你想查看的变量,鼠标停留在上边,就会出现该值。或者选中后点击鼠标右键,选择添加到监视(英文版的是add to watch),如下图

2、从你断点开始的地方,你可以按F7,程序会一步一步往下走,碰到函数的话,会跳转到该函数;按F8则是在当前代码页一行一行的往下走,碰到函数不会跳转。这两个功能是断点调试的最为实用和关键功能。
3、当你想直接从某个断点跳到另一行处断点时,你可以在进入断点后,在你想在另一行断点处,点击断点,然后按下F9或者点击下边框中的绿色按钮,如下图。

4、当你由于断点调试,在多处断点,并且打开了多个文件,想查看你在那些地方断点,可以按Ctrl+Shift+F8 浏览断点

本篇完结
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
