您现在的位置是:主页 > news > 揭阳高端网站建设价格/爱站网站长工具
揭阳高端网站建设价格/爱站网站长工具
admin2025/5/2 1:53:07【news】
简介揭阳高端网站建设价格,爱站网站长工具,wordpress 修改头像,网站建设需要学编程吗1.应用场景 主要用于学习和使用xdebug进行项目的调试,包括本地项目或者远程项目。基于vscode或者phpstorm编辑器或IDE,目的就是为了解决开发中的问题,快速调试找到问题,解决问题。 2.学习/操作 1. 文档 Xdebug - Debugger and Pr…
1.应用场景
主要用于学习和使用xdebug进行项目的调试,包括本地项目或者远程项目。基于vscode或者phpstorm编辑器或IDE,目的就是为了解决开发中的问题,快速调试找到问题,解决问题。 |
2.学习/操作
1. 文档
2. 整理输出2.1 环境
这里使用php 内置http server2.2 检查/安装xdebug扩展
2.3 配置扩展信息php.ini配置文件中添加xdebug的配置
而且安装VSCode的插件PHP Debug时,也有提示 2.4 在编辑器/IDEA中配置xdebug这里以为vscode为例1. 编辑settings.json直接搜索settings.json,添加如下两行即可
选择第一个,回车,然后将value的null改为 /usr/local/opt/php@7.2/bin/php [这是我本机的php可执行路径] 2. 编辑launch.json在configure下,添加配置项
可以点击,右下角的添加配置,然后填充即可, 这里做了三个配置,从而针对不同的环境,不同的项目进行不同的选择,进行调试追踪。 name别一样就行了,方便自己区分。 本机的launch.json文件内容,如下,供参考 -- 这个json文件的内容是国外同事之前添加的,现已被移除code base
2.5 本地debug测试单步调试追踪1. 启动web server这里使用PHP内置http server 2. 打断点这里就直接在入口脚本打断点,试试单步调试 3. vscode中启动xdebug调试这里选择 Listent for Xdebug 可以看到vscode界面已经进入调试等待状态 4. 客户端发起请求这里使用postman,浏览器也是一样 点击发起请求 localhost:7200, postman会进入阻塞状态,即一直请求状态 然后跳转到vscode的断点,如下 然后点击单步追踪的几个按钮进行调试即可。 可以看到调试过程中的变量[局部变量和超全局变量] 以及调用堆栈,断点信息,调试控制台等,基本想要的信息都能看到。 至于监控,是xdebug的另一功能, 待实践。 Xdebug本地调试,成功结束~2.6 远程debug测试
后续补充 ... |
3.问题/补充
1. 踩坑:Xdebug配置信息错误可以看到,上面你Xdebug输出的信息,大意就是,php.ini文件配置的xdebug的选项已经改名了, 详情参见: Xdebug: Documentation » Upgrading from Xdebug 2 to 3 Xdebug: Documentation » Upgrading from Xdebug 2 to 3 根本原因在于: 我们目前使用的是最新大版本xdebug 3.x,主版本发生了改变,通常意味着,不再兼容之前的主版本, 也就是xdebug 2.x 这里改为如下配置
重启web服务 Note可以查看php.ini中xdebug的设置 -- 注意,这并不一定是正在运行的进程中xdebug的配置
注意其中有一行
也是提示我们,被重命名,需要查看xdebug 3的文档去确认 然后,查文档 ,可知:
Replaced by xdebug.client_port. The default value has also changed from 2. 踩坑2: 请求一直报错:
背景:各种配置完毕。 报错提示:Xdebug单步调试,不能连接到debugging的客户端,这里也就是vscode. 原因:提示报错已经说明了,这个问题应是client的问题,因为报错中提到Step Debug, 最终判断是个人选择的xdebug的选项可能有问题,导致debug一直没响应。 最先选择的是 Launch Built-in web server 因为这里的server就是使用的PHP build-in web server 但是配置似乎有问题,或者说在 step debug方面,不论是Nginx,Apcache 还是 PHP Build-in web server 都是一样的。只要理清楚了Xdebug的工作流程/原理就明白了。 3. Xdebug的工作原理
4. 问题列表1. 如果一个进程在调试,那么其他的请求,应该是正常运行的?
5. 有时候打断点会表现出没有响应,可能的原因是服务响应确实慢,比如服务端需要调用[同步调用]第三方服务,所以会表现出阻塞[客户端请求,浏览器或者postman一直处于打转,请求的状态]的状态,此时,需要等待一下,但是还有另外一个问题,就是超时问题,可能需要额外设置超时限制。 -- 20220608 周三 |
4.参考
参见文档阅读列表 |
后续补充
...