使用 xdebug 辅助 php 调试(一)

关键词:xdebug php

xdebug 功能

xdebug 是 php 用来调试、性能调优的工具,常见的功能:

  • 打印变量
  • 堆栈追踪
  • 函数追踪
  • 代码覆盖度分析
  • 远程调试

详情见文档:https://xdebug.org/docs/

编译安装 xdebug

xdebug.org 提供了一套在线分析系统,能够根据 php -i 的输出信息,给出对应系统的安装步骤。但无非是常见的那几个步骤,没有特殊的操作。

首先下载代码: https://xdebug.org/files/xdebug-2.4.0.tgz

解压缩后,进入 xdebug-2.4.0,执行下面的命令配置 xdebug,观察输出的路径是否是 php-5.6.21:

./configure --enable-xdebug --with-php-config=/usr/local/php-5.6.21/bin/php-config

加上 --with-php-config 参数的目的是让 configure 能够使用 php-5.6.21 的环境,而不是 os 默认的 php-5.3 的环境。

区别在于 php/zend API 版本不同,运行 phpize 和 /usr/local/php-5.6.21/bin/phpize 对比输出可以看到版本号的不同。

之后执行 make,成功后得到 modules/xdebug.so,将这个文件 cp 到 /usr/local/php-5.6.21/extensions/ 目录下,既完成了安装。

使用 xdebug

需要在 php.ini 中加入:

[xdebug]
zend_extension = /usr/local/php-5.6.21/extensions/xdebug.so
xdebug.profiler_enable = on
xdebug.default_enable  = on
xdebug.cli_color = 1

注意,zend_extension 需要写全路径。

测试代码:

<?php                

$a = 123;
$b = $a;
xdebug_debug_zval(‘a‘);
var_dump($a);

$c = ‘xdebug‘;
xdebug_debug_zval(‘c‘);
var_dump($c);

$mod = [‘name‘ => ‘xdebug‘, ‘version‘ => ‘2.4‘, ‘enabled‘ => TRUE];
var_dump($mod);

执行测试程序:

php-5.6.21 -c php.ini  test_xdebug.php

输出:

能得到带颜色的输出是因为刚刚在 php.ini 中加入 xdebug.cli_color = 1 的配置项。

可以看到 var_dump() 本身也得到了增强,带上了行号。

更多的功能请参阅 xdebug 在线文档:https://xdebug.org/docs/

时间: 2024-10-13 07:28:05

使用 xdebug 辅助 php 调试(一)的相关文章

netbean + xdebug 配置单步调试

从我学PHP开始,netbean+xdebug这个组合对我帮助挺大的,特别是开一些大点的开源程序,如YII,THINKPHP,CI,LARAVEL,ECSHOP,V9框架之类的,用上单步调试,就可以很清晰的看到程序是怎么走的,学习牛人是怎么写代码的,总之一句话:此乃神器也!! ^-^ 好了,废话不多说:1:去下载php_xdebug.dll扩展,注意:要对应PHP的版本,要不你就是瞎搞十天九夜也不会成功的喔! 2:在php.ini文件末尾加上 zend_extension=f:\www\php5

PHP - 如何使用XDEBUG来远程调试?

PHP - 如何使用XDEBUG来远程调试? 开发的时候我都是使用XDebug在本地调试,但是最近加入一些项目中去,环境太复杂了,要在本地搭建一个开发环境真的太麻烦了,那么我们怎么使用xdebug来远程调试呢? 我这里使用虚拟机搭建了一个模拟环境来实验说明: 1.虚拟机IP:192.168.174.130 ,虚拟机用于搭建lampp环境 2.实体机IP:192.168.174.1,这个是IDE的开发环境. 首先我在虚拟机里面安装了一个lampp,而且增加了一vhosts,具体如下: vim /o

使用phpstorm和xdebug实现远程调试

使用phpstorm和xdebug实现远程调试 2012-05-23 10:06:35 vs的断点调试功能很强大有木有,能查看所有变量有木有.php调试很麻烦有木有,echo,var_dump写得你想吐了有木有.想体验一下ide调试的快感吗?那就来使用xdebug吧. 1.原理:xdebug是一款php调试插件,支持远程调试,就是在php文件运行的时候,能通过tcp协议,来发送调试信息到远程端口,ide在收到调试信息的时候,可以向xdebug发送单步运行,中止运行,运行等命令.这样就实现了vs那

PHP使用Xdebug进行远程调试

PHP使用Xdebug进行远程调试 翻译 by mylxsw posted on 2014/07/14 under 技术文章 > 编程语言 Xdebug提供了客户端与PHP脚本进行交互的接口,这一章将会介绍如何让PHP和Xdebug开启这个特性,并且介绍一些常用的客户端. 概述 Xdebug(远程)调试器允许测试数据结构,步进并且调试你的代码.Xdebug提供了两种协议用于与其进行交互:在Xdebug1.3和2中旧的GDB协议和Xdebug2中实现的DBGp协议. 客户端 Xdebug2 为DB

使用 PHPStorm + Xdebug 实现断点调试(二)

一.配置 Xdebug 配置 Xdebug 相关参数,在 php.ini 文件中新增如下配置,如果没安装的,请参考<PHP 安装 Xdebug扩展>: [xdebug] xdebug.remote_enable = on xdebug.remote_handler = dbgp xdebug.remote_mode = req xdebug.remote_host = localhost xdebug.remote_port = 9000 xdebug.idekey = PHPSTORM 重启

Mac 使用自带php和Apache 安装配置Xdebug 开启本地调试模式

Mac 安装配置php xdebug 本地调试 0.原理图 https://paper.seebug.org/308/ 测试demo构建方法 新建空白项目,目录选择Apache默认项目目录 1.下载xdebug https://xdebug.org/files/xdebug-2.9.0.tgz 具体自己的版本要根据??的方法得出 2.使用官方检测指导工具 https://xdebug.org/wizard 将phpinfo()打印内容的网页源码复制到框里,点击检测,会得到提示 然后根据提示进行操

PhpStorm+Xdebug配置单步调试PHP

(一)php安装xdebug扩展,PHPStorm+XDebug单步调试 (二)PHPStorm配置XDebug (三)PHPStorm使用XDebug调试 (四)PhpStorm+Xdebug配置单步调试PHP 一.原理: Xdebug是一款php调试插件,支持在Windows或Linux上进行远程调试.在php文件运行时,通过TCP协议发送调试信息到远程端口,IDE在收到调试信息时,可以向Xdebug发送单步运行,中止运行,运行等命令.此插件还可以进行代码覆盖率的统计,有兴趣的小伙伴可以一起

phpstorm配置xdebug进行远程调试(ubuntu)

写这篇文章的时候,因为自己也像很多新手一样犯了很多基础的错误,由于发现网上一些资料大多数是针对本地的,对各个配置的原因讲解并不清楚,所以我花费了蛮长时间弄懂了整个调试的过程 一:操作环境: ubuntu 14.04 php5.5 +apache    windows phpstorm 二:准备工作,在保证php与apache能够正常工作的情况下 1:sudo apt-cache search xdebug 先查找xdebug相关的软件名,然后安装php的 sudo apt-get install

zendStudio安装Xdebug项目断点调试

1,首先安装xdebug插件 传送门 2,配置php.ini文件如下: [XDebug] xdebug.profiler_append = 1xdebug.profiler_enable = 1xdebug.profiler_enable_trigger = 1xdebug.profiler_output_dir ="D:\xdebug"xdebug.trace_output_dir ="D:\xdebug"xdebug.profiler_output_name =