Xampp中Xdebug的安装使用

在这里插入图片描述

工欲善其事,必先利其器

XDebug简介
XDebug 是一个用于 PHP 的调试和性能分析工具。它提供了一系列功能,帮助开发者在开发和调试 PHP 应用程序时更加高效。

以下是 XDebug 的一些主要特性和功能:

调试功能:

断点调试: XDebug 允许在代码中设置断点,以便在执行到断点时停止脚本的执行,从而方便开发者逐步调试代码。
变量查看: 提供了能够查看变量内容、堆栈跟踪和函数调用的功能,帮助开发者更好地理解代码执行过程。
远程调试: 支持通过网络进行远程调试,使开发者可以在不同的环境中调试 PHP 代码。
性能分析功能:

代码覆盖率: XDebug 可以生成代码覆盖率报告,显示哪些部分的代码被执行,帮助开发者优化测试覆盖率。
性能分析: 提供了性能分析功能,能够生成调用图和函数调用统计信息,有助于发现代码中的性能瓶颈。
错误报告:

显示详细错误信息: 当 PHP 脚本发生错误时,XDebug 可以提供更详细和有用的错误信息,包括堆栈跟踪,帮助开发者更容易地定位和修复问题。
IDE 集成:

支持多种 IDE: XDebug 可以集成到多种流行的 PHP 集成开发环境(IDE)中,例如 PhpStorm、Eclipse 等,提供更友好的调试体验。
配置和定制:

灵活配置: XDebug 提供了许多配置选项,可以根据开发者的需求进行灵活配置。
支持多种输出格式: 可以将调试信息输出为 HTML、文本或其他格式,以适应不同的需求。

PhpStorm调试工具

XDebug安装

请确保已经安装好PhpStorm和Xampp

配置Xampp

1、 停止apache服务,打开php.ini

2、 查找“XDebug”,找到[XDebug]配置,将#去掉(#为注释符号),按照以下配置修改:

xampp中会有XDebug的代码

;的意思是被注释掉了,所以要先去掉;号;

然后开启xdebug.remote_enable = on;

还要增加xdebug.idekey= PHPSTROM。

其中remote_host 是指调试客户端的地址,即IDE所在的IP,同理remote_port 是客户端的端口,这两项在远程调试的情况下注意修改,远程的时候最终改为:


[XDebug]

zend_extension = "D:\xampp\php\ext\php_xdebug.dll"

xdebug.profiler_append = 0

xdebug.profiler_enable = 1

xdebug.profiler_enable_trigger = 0

xdebug.profiler_output_dir = "D:\xampp\tmp"

xdebug.profiler_output_name = "cachegrind.out.%t-%s"

xdebug.remote_enable = 1

xdebug.remote_handler = "dbgp"

xdebug.remote_mode = "req"

xdebug.remote_port = 9000


3、 保存文件,重启apache,这时候在CMD里输入 你的xampp目录\php\php.exe -m

看到列表中包含XDebug说明开启成功。至此,服务器端配置完毕

另一种方法为浏览器打开localhost,找到phpinfo()点击打开配置情况,查找xdebug项,找到了说明xdebug配置成功。

 

配置PhpStorm

1、 打开phpStorm,进入File>Settings>Languages&Frameworks>PHP>Servers。

这里要填写服务器端的相关信息,name随意,host填项目地址,port填80,debugger选XDebug

2、 进入File>Settings> Languages&Frameworks>PHP>Debug,看到 XDebug 选项卡,port填9000,其他默认

备注:DebugPort要和Php.ini中一致。

3、 进入File>Settings>PHP>Debug>DBGp Proxy,IDE key 填 PHPSTORM,host 填localhost,port 填9000,点击ok保存配置(其实这里也是可以不用设置)

4、 Phpstorm中打开调试环境:单击IDE右上角电话图标,默认为关闭

点击后变为开启debug:

注意:不进行调试时请关闭

配置Chrome浏览器

1、 打开chrome浏览器,百度“chrome xdebug helper”,下载xdebug插件。

下载后文件:chromein.com_ext_11294.crx

2、 点击chrome浏览器右上角三道横线的图标

,在下拉菜单中选择“设置>扩展程序”。将下载好的插件拖入打开的扩展程序页面,即可安装插件。

 

收藏(五角星)按钮左侧,多出一个debug图标(瓢虫)

 

3、 安装好插件,点击选项,配置IDE key为PhpStorm

 

 

4、 安装好的Xdebug插件浏览器右上角有瓢虫图标。默认为Disable,调试时选中点击Debug

 

由于具体的图片没有显示出来,我上传一个文档配置XDebug,在phpstorm和Chrome浏览器中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/375354.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity C#进阶案例 “泛型编程”

文章目录 泛型基础示例1:泛型类与方法示例2:泛型方法示例3:泛型约束示例4:泛型委托与事件示例5:泛型单例模式(Unity) 在Unity中,C#的泛型编程是一种强大的工具,它允许你编…

补题:leetcode第382场周赛 3022. 给定操作次数内使剩余元素的或值最小

3022. 给定操作次数内使剩余元素的或值最小 - 力扣(LeetCode) 拆位 n个数进行或运算的结果最小,每次操作可以对相邻的两个数进行与运算,至多进行k次操作 n个数进行或运算,可以对每个数进行拆解,拆解成最小…

RabbitMQ-3.发送者的可靠性

发送者的可靠性 3.发送者的可靠性3.1.生产者重试机制3.2.生产者确认机制3.3.实现生产者确认3.3.1.开启生产者确认3.3.2.定义ReturnCallback3.3.3.定义ConfirmCallback 3.发送者的可靠性 首先,我们一起分析一下消息丢失的可能性有哪些。 消息从发送者发送消息&#…

11.0 Zookeeper watcher 事件机制原理剖析

zookeeper 的 watcher 机制,可以分为四个过程: 客户端注册 watcher。服务端处理 watcher。服务端触发 watcher 事件。客户端回调 watcher。 其中客户端注册 watcher 有三种方式,调用客户端 API 可以分别通过 getData、exists、getChildren …

vulnhub中Beelzebub靶机

渗透思路 一.信息收集1.网段探测2.端口探测3.常见漏洞扫描4.目录扫描5.web页面分析 二.渗透继续目录扫描ssh连接提权提权,flag 一.信息收集 1.网段探测 ┌──(root㉿kali)-[~] └─# nmap -Pn 192.168.0.0/24 --min-rate 10000 Starting …

计算机科学导论(4)DMA传输原理

文章目录 DMA的工作原理DMA的优势DMA的类型DMA的应用 DMA(Direct Memory Access)直接内存访问是一种允许某些硬件子系统在不通过中央处理单元(CPU)的情况下,直接从内存读取或向内存写入数据的技术。这种方式可以显著提…

【OpenVINO™】在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (上篇)

在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (上篇) 项目介绍 YOLOv5 是革命性的 "单阶段"对象检测模型的第五次迭代,旨在实时提供高速、高精度的结果,是世界上最受欢迎的视觉人工智能模型,代表了Ult…

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM) 所谓预测,就是指通过对事物进行分析及研究,并运用合理的方法探索事物的发展变化规律,对其未来发展做出预先估计和判断。…

二叉树的锯齿形遍历,力扣

目录 题目: 我们直接看题解吧: 快速理解解题思路小建议: 解题方法: 相似题目对比分析: 解题分析: 解题思路: 补充说明: 思路优化: 代码实现(层序遍历倒序): 题…

osg模型的平移、缩放、旋转

加载2个模型,其中一个向上移动28个单位; 加载2个模型,其中一个缩放0.5倍,向下移动22个单位; 加载2个模型,其中一个缩放0.5倍、旋转45度、向右向下移动几个单位; 都是用矩阵实现的; …

基于CEVA DSP BX2的架构分析(六)-加载和存储单元(二)

6.4 指针修改机制 LS0和LS1都包含指针修改机制。当使用间接或索引寻址模式时,指针的修改可以与地址生成并行执行。在间接寻址模式中,指针包含地址,而在变址寻址模式下,指针包含偏移量(有关这些寻址模式的更多详细信息&…

axios get 请求 url 转码 空格转成+,导致请求失败(前端解决)

问题 GET 请求参数: URL-encoded 后: 浏览器将空格转成了,导致服务报错,返回 400。 解决 在请求拦截器中,对 params 进行处理。 axios.interceptors.request.use((config) > {let url config.url;if (config…

收藏:相当大赞的来自 Agilean产品团队的2篇关于重塑敏捷组织的绩效管理的文章

Agilean产品团队,是吴穹博士领导下最近在国内敏捷界很厉害的产品,今天看到两篇相当不错的说敏捷组织的上下篇文章,分享下,地址是:6个原则15项举措,重塑敏捷组织的绩效管理(上) 6个原…

Unity接入GVoice腾讯实时语音

Unity接入GVoice腾讯实时语音 一、介绍二、注册GVoice创建项目语音服务1.创建项目2.申请语音权限3.项目管理查看SDK初始化的一些参数和基本信息4.GVoice检测 三、SDK下载SDK是分为两种类型:独立版集成板 SDK放入Unity工程中 四、语音代码写法五、GVoice踩坑语音权限…

C#委托的前世今生

起因 很多C#初学者,都遇到过这样的问题——线程间操作无效,从不是创建控件的线程访问它。 今天就这个问题,展开分析。 溯源 先说下这个问题产生的根源。 大家都知道,程序运行起来之后,首先会有一个主线程&#xff…

CTF-show WEB入门--web19

今晚web19也就顺便解决了 老样子我们先打开题目看看题目提示: 可以看到题目提示为: 密钥什么的,就不要放在前端了 然后我们打开题目链接: 然后我们查看网页源代码: 可以发现有用的内容全在网页源代码里。 前端验证…

将markdown格式内容在界面中展示出来(搭配上一篇使用)

1.定义一个div content 是你向展示的 markdown 格式数据 <div id"previewMarkdown"><textarea>{{ content }}</textarea> </div>2.导入js 这个都是 lib 目录下的 js 文件&#xff0c;因为 markdown 组件依赖这些 js 文件 <script src…

红外避障模块

目录 一、模块原理 二、模块使用说明 三、材料准备 四、代码 五、实验效果 实验效果 自动灯效果&#xff1a; 避障模块-CSDN直播 一、模块原理 红外避障模块利用光反射原理&#xff0c;模块前端拥有一个红外发射管和一个红外接收管。模块通电后红外发射管向前方不断发射…

vue前端RSA使用公钥进行加密,公钥进行解密

记录下RSA使用公钥进行加密&#xff0c;公钥进行解密&#xff1a; 背景&#xff1a;由于项目要求前后端进行数据加密传输&#xff0c;具体数据使用aes进行加密&#xff0c;aes密钥使用rsa进行加密&#xff0c;加密后的aes密钥放在请求头和响应头进行传输。这里实现的是前端vue…

springboot159基于springboot框架开发的景区民宿预约系统的设计与实现

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计&#xff0c;课程设计参考与学习用途。仅供学习参考&#xff0c; 不得用于商业或者非法用途&#xff0c;否则&#xff0c;一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…