xdebug3开启profile和trace

【xdebug开启profiler】

https://xdebug.org/docs/profiler
http://www.xdebug.org.cn/docs/profiler

1、php.ini添加下面配置然后重启php容器:

xdebug.mode=profile
;这个目录保存profile和trace文件
xdebug.output_dir =/var/tmp/xdebug

PHP日志提示报错:
PHP message: Xdebug: [Profiler] File ‘/var/tmp/xdebug/cachegrind.out.8’ could not be opened

解决方案:将/var/tmp/xdebug目录权限设置成777:
chmod 777 /var/tmp/xdebug
这个目录最好换成挂载的项目路径下,这样才能在本地环境下查看生成的profile文件,比如:
xdebug.output_dir = /www/php_demo/xdebug
也可以换成下面的配置,就可以在当前执行方法的文件下生成profile文件:
xdebug.output_dir = ./

2、phpstorm开启debug,执行一下要追踪的方法,就会生成profile文件
生成文件的名称总是以 "cachegrind.out."开头,默认情况下以 PHP(或 Apache)进程的 PID(进程 ID)结尾。您可以使用 xdebug.profiler_output_name 更改文件名格式。

3、分析 Profiles
(1)通过phpstorm分析
双击shift,启动万能的搜索框,输入“Analyze Xdebug Profiler Snapshot”回车即可选择分析profile文件。
(2)通过QCacheGrind分析
下载地址:https://sourceforge.net/projects/qcachegrindwin/
注意:
1、修改php.ini xdebug.use_compression参数配置。将其设为false。否则生成的profile文件是带有gz后缀的压缩文件,QCacheGrind无法打开这个格式的文件。
2、如果打开文件目录时找不到文件,把搜索文件类型修改为“All File”

在这里插入图片描述

在这里插入图片描述

[自主选择是否生成profile]

xdebug2和xdebug3的配置是不一样的:

xdebug2是使用下面的配置:

;下面这两个参数在xdebug3都被移除了,参考文档:https://xdebug.org/docs/upgrade_guide
;xdebug.profiler_enable = 1
;xdebug.profiler_enable_trigger = 1

xdebug3是使用下面的配置:

php.ini配置加上:
;这个配置使得只有在请求开始时存在特定触发器时,功能才会被激活。
;https://local.phpdemo.com/?XDEBUG_PROFILE=1 请求后面带有特定的标识才会执行对应的操作,比如生成profile文件
;https://xdebug.org/docs/all_settings#start_with_request
xdebug.start_with_request=trigger

在这里插入图片描述

访问接口的时候,加上XDEBUG_PROFILE参数即可,value可以为任意值
https://local.phpdemo.com/?XDEBUG_PROFILE=1

;通过 xdebug.trigger_value,您可以控制激活触发器的具体触发值。如果 xdebug.trigger_value 设置为空字符串,则任何值都可以触发。
;如果加上这个配置,访问接口得是:http://local.phpdemo.com/?XDEBUG_PROFILE=cowboy,才会激活。要对接口加上断点调试,就得加上XDEBUG_SESSION=cowboy
xdebug.trigger_value=cowboy

【xdebug开启trace】

php.ini配置:

xdebug.mode=debug,profile,trace
;这个目录保存profile和trace文件,要先设置777权限
xdebug.output_dir = /www/php_demo/xdebug
;指定trace的文件显示格式,默认是0;生成的文件直接拉到浏览器就能打开了。
xdebug.trace_format = 3

同样访问格式:http://local.phpdemo.com/?XDEBUG_TRACE=cowboy
生成的trace文件直接拉到浏览器就能打开了。

最终的php.ini配置文件:

;xdebug3用下面的配置
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
;xdebug.mode=debug
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.idekey=PHPSTORM

;开启profile(注意:可以设置多个xdebug模式,比如xdebug.mode=debug,trace,profile)
xdebug.mode=debug,profile,trace
;这个目录保存profile和trace文件,要先设置777权限
xdebug.output_dir = /www/php_demo/xdebug
;关闭压缩,qcachegrind 工具不支持.gz 格式的分析日志。phpstorm就可以支持分析压缩文件
xdebug.use_compression = false

;下面这两个参数在xdebug3都被移除了,参考文档:https://xdebug.org/docs/upgrade_guide
;xdebug.profiler_enable = 1
;xdebug.profiler_enable_trigger = 1

;这个配置使得只有在请求开始时存在特定触发器时,功能才会被激活。
;https://local.phpdemo.com/?XDEBUG_PROFILE=1 请求后面带有特定的标识才会执行对应的操作,比如生成profile文件
;https://xdebug.org/docs/all_settings#start_with_request
xdebug.start_with_request=trigger
;通过 xdebug.trigger_value,您可以控制激活触发器的具体触发值。如果 xdebug.trigger_value 设置为空字符串,则任何值都可以触发。
;如果加上这个配置,访问接口得是:http://local.phpdemo.com/?XDEBUG_PROFILE=cowboy,才会激活。
xdebug.trigger_value=cowboy

;指定trace的文件显示格式,默认是0;生成的文件直接拉到浏览器就能打开了。
xdebug.trace_format = 3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要开启PHP调试,需要使用PHPStormXdebug。以下是步骤: 1. 在PHPStorm中安装Xdebug插件。 2. 在PHP.ini文件中启用Xdebug扩展。 3. 在PHPStorm中配置Xdebug。 4. 在PHPStorm中设置断点。 5. 在浏览器中访问需要调试的PHP文件。 6. 在PHPStorm中启动调试会话。 7. 在PHPStorm中调试代码。 以上是PHPStormXdebug开启PHP调试的基本步骤。具体操作可以参考相关文档或教程。 ### 回答2: 在使用PHP开发过程中,经常需要调试PHP代码以查找错误或进行代码优化。为此,我们可以使用PHPStormXdebug开启PHP调试。 首先,我们需要在PHP安装目录下找到php.ini文件,在其中添加以下配置: ``` [xdebug] zend_extension=/path/to/xdebug.so xdebug.remote_enable=1 xdebug.remote_host="localhost" xdebug.remote_port=9000 ``` 其中,`path/to/xdebug.so`为Xdebug扩展的安装路径,可以在php.ini文件中查找extension_dir参数得到。`remote_enable`和`remote_host`分别表示开启远程调试和连接IP地址,`remote_port`表示连接端口。 接着,在PHPStorm中打开需要调试的项目,选择“Edit Configurations”,新建一个“PHP Remote Debug”配置项,配置如下: ``` Name:任意名称 Servers:点击加号选择“Add new server”,配置服务器名称、主机和端口号 IDE Key:PHPSTORM ``` 然后,我们需要用浏览器打开调试页面,此时Xdebug会自动连接PHPStorm,并暂停在第一行代码处。在PHPStorm中,我们点击“Step Over”或者“Resume Program”按钮进行调试。调试时,可以通过断点、变量监视和表达式监视等功能来检查代码的执行过程和结果。 在调试完成后,需要在php.ini文件中将xdebug配置注释掉,避免对生产环境产生影响。 总之,使用PHPStormXdebug开启PHP调试可以提高开发效率和代码质量,使调试变得更加快速和准确。 ### 回答3: 在使用PHP开发时,我们经常需要进行调试,以检测代码中的问题并及时修复。phpstorm xdebug是一种强大的工具,可以帮助我们实现PHP代码的调试。在使用phpstorm xdebug时,我们需要进行以下步骤: 1. 安装xdebug 首先,我们需要在服务器上安装xdebug扩展。可以通过在Linux命令行上输入以下命令进行安装: ``` sudo apt-get install php-xdebug ``` 2. 在php.ini文件中配置xdebug 在安装xdebug扩展之后,我们需要在php.ini文件中进行配置。可以通过在Linux命令行上输入以下命令找到php.ini文件的路径: ``` php -i | grep php.ini ``` 然后,在php.ini文件中添加以下配置: ``` [xdebug] zend_extension=/usr/lib/php/20100525/xdebug.so xdebug.remote_enable=1 xdebug.remote_host=localhost xdebug.remote_port=9000 ``` 3. 在phpstorm中配置xdebug 在打开phpstorm中的项目之后,我们需要配置xdebug,以便与我们的服务器进行通信。我们可以通过以下步骤进行配置: - 打开“Run”菜单,选择“Edit Configurations…” - 在左侧面板中选择“PHP Web Page” - 点击右侧的“+”按钮,然后输入“Name”和“Server”等信息 - 在“Debugger”选项卡中,选择“Xdebug” - 点击“OK”按钮保存配置 4. 使用phpstorm xdebug调试代码 当我们完成了以上步骤之后,就可以使用phpstorm xdebug进行代码调试了。我们可以在代码中设置断点,然后通过单击“Debug”按钮来启动调试器。当代码运行到断点时,phpstorm就可以自动停止执行,以便我们可以检查代码中的问题。同时,我们还可以使用phpstorm中的许多其他调试工具,以便更好地管理我们的代码。 总之,phpstorm xdebug是一种非常强大的工具,它可以帮助我们实现PHP代码的高效调试。通过上述步骤的操作,我们可以轻松地将xdebug集成到我们的PHP开发环境中,以便更好地管理我们的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值