## PHP 调试工具Xdebug安装配置

一、Xdebug 介绍

  Xdebug是一个开源的PHP程序调试工具,可以使用它来调试、跟踪及分析程序运行状态。当然,Xdebug需要结合PHP的编辑工具来打断点、跟踪、调试及分析,比较常用的PHP的Xdebug调试环境。

二、安装

  (一)xdebug.dll 下载

    https://pecl.php.net/package/Xdebug  (根据自己的PHP版本下载)

  (二)xdebug 安装

    1. 将下载下来的 php_xdebug-2.5.0rc1-7.1-vc14-nts-x86_64 放在 php 的 ext 目录下。

    2. php.ini 配置

      

[Xdebug]
zend_extension="E:/development/php/php-7.1.1-nts-Win32-VC14-x64/ext/php_xdebug-2.5.0rc1-7.1-vc14-nts-x86_64.dll" ;启用代码自动跟踪
xdebug.auto_trace= ;允许收集传递给函数的参数变量
xdebug.collect_params= ;允许收集函数调用的返回值
xdebug.collect_return= ;指定堆栈跟踪文件的存放目录
xdebug.trace_output_dir="E:/proj/WOS/xdebug"   ;启用性能检测分析
xdebug.profiler_enable=on ;指定性能分析文件的存放目录
xdebug.profiler_output_dir="E:/proj/WOS/xdebug"
xdebug.profiler_output_name = "callgrind.%p"

重启Nginx/Apache 后, phpinfo()一下会看到。

三、运行

  (一)相关函数

    1. xdebug_call_class()

    返回从当前函数/方法调用的类名

    2. xdebug_call_file()

    返回从当前函数/方法调用的文件

    3. xdebug_call_function()

    返回从当前函数/方法调用的函数名

    4. xdebug_call_line()

    返回从当前函数/方法调用函数的行号

    5. xdebug_disable( )

    关闭xdebug错误跟踪

    6. xdebug_enable()

    开启xdebug错误跟踪

    7.xdebug_get_headers()

    返回所有通过PHP的header()设置的值,或者其他头设置。

    8.xdebug_is_enabled( )

    返回是否启用了堆栈跟踪

    9.xdebug_memory_usage()

    返回当前内存使用情况

    10.xdebug_peak_memory_usage()

    返回高峰内存使用情况

    11.xdebug_time_index()

    返回自脚本启动到指定脚本索引行所用时间

  (二)生产的文件

    运行的项目的目录,然后会得到以下文件。

    

  (三)安装解析程序

    得到这些文件之后要如何分析呢?

    这是时候可以下载:

    https://sourceforge.net/projects/qcachegrindwin/ (如果下载不了,翻一下墙)

  (四)qcachegrindwin工具使用

  

以上可以分析程序的性能以及执行过程,对调试还是很有帮助的。

PHP 调试工具Xdebug安装配置的更多相关文章

  1. PHP调试工具Xdebug安装配置教程

    说道PHP代码调试,对于有经验的PHPer,通过echo.print_r.var_dump函数,或PHP开发工具zend studio.editplus可解决大部分问题,但是对于PHP入门学习的童鞋来 ...

  2. PHP性能调优---PHP调试工具Xdebug安装配置教程

    说到PHP代码调试,对于有经验的PHPer,通过echo.print_r.var_dump函数,或PHP开发工具zend studio.editplus可解决大部分问题,但是对于PHP入门学习的童鞋来 ...

  3. linux下php调试工具xdebug安装配置

    xdebug简介 Xdebug是php的一款调试工具,是基于zend的一个扩展,可以用来跟踪,调试和分析PHP程序的运行状况.如变量,函数调试,性能监测,代码覆盖率等 xdebug安装 1.下载xde ...

  4. XDebug安装配置教程

    笔者的开发环境如下:Windows8.1+Apache+PhpStorm+XDebug+Firefox(XDebug helper 1.4.3插件). 转载http://www.jb51.net/ar ...

  5. phpstorm+xdebug安装配置

    这个问题也困惑了我好久 烦死了 今天看了qing师傅的博客 跟着安装 运行环境: phpStorm 2018 PHP 5.45 nts VC9 Xdebug 2.4.1 0x01 PHP安装xdebu ...

  6. 安装配置Xdebug模块详解

    1.XDebug安装配置 (1)下载XDebug下载地址:http://www.xdebug.org/必须下载跟机器上安装的php匹配的版本才行.具体下载方法如下:将phpinfo网页的源代码拷贝到h ...

  7. 安装php调试工具 Xdebug的步骤 火狐 phpstorm联调

    一 安装服务器端 1 选择你的版本 <?php phpinfo(); ?> 比如我的: 关键是这三项:PHP Version 7.3.0Architecture x86 (x86是32位系 ...

  8. Xdebug在PHP中的安装配置

    Xdebug在PHP中的安装配置涉及php.ini配置文件的修改. 1  首先需要下载Xdebug,根据安装的PHP版本,选择合适的Xdebug版本, 2  安装Xdebug将下载的php_xdebu ...

  9. Xdebug安装对应版本与配置

    Xdebug安装地址https://xdebug.org/download.php,进入下载页面后点击custom installation instructions,可以找到适合的Xdebug版本. ...

随机推荐

  1. 【Linux】DNS基础(一)

    DNS基础 DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,域名服务器是进行域名(domain name)和与之相对应的IP地址 ...

  2. 【Java】JavaWeb 登录检查及界面跳转

    场景 一般javaweb网站都有用户登录,而有一些操作必须用户登录才能进行,常见流程:用户请求-->后台判断是否登录-->没登录跳转到登录界面,登录用户正常操作 解决思路 在用过滤器过滤请 ...

  3. canvas 实现掉落效果

    var canvas = document.getElementById('canvas'); var cxt = canvas.getContext('2d'); cxt.strokeStyle = ...

  4. 再读c++primer plus 005

    对象和类: 1.类和结构的唯一区别是结构的默认访问类型是public,而类为private: 2.其定义位于类声明中的函数都将自动成为内联函数,也可以在类声明外定义成员函数,并使其成为内联函数,为此只 ...

  5. idea 设置编译的编码方式

    Settings->Build,Execution,Deployment->Compiler->Java Compiler,右边的详情列表中,Javac Options有设置参数的地 ...

  6. nginx 502 Bad Gateway 错误解决办法

    nginx出现502有很多原因,但大部分原因可以归结为资源数量不够用,也就是说后端PHP-fpm处理有问题,nginx将正确的客户端请求发给了后端的php-fpm进程,但是因为php-fpm进程的问题 ...

  7. Codeforces 1107 简要题解

    文章目录 A题 B题 C题 D题 E题 F题 G题 传送门 A题 传送门 题意简述:问你能不能把一个数字串切成若干块,使得切出来的kkk个数k≤2k\le2k≤2满足a1<a2<...&l ...

  8. SPRING 集成 activemq 的 topic 模式

    概要 activemq 支持两种模式: 1.队列模式 2. 发布订阅者模式,topic有一个主题可以有多个订阅者.这种情况可以将一个消息,分发到多个消费者. 比如我有这样一个案例,用户需要同步,而且需 ...

  9. PHP函数gmstrftime()将秒数转换成天时分秒

    http://yangjunwei.com/a/930.html PHP函数gmstrftime()将秒数转换成天时分秒   一个应用场景需要用到倒计时的时分秒,比如新浪微博授权有效期剩余: 7天16 ...

  10. es6 字符串方法

    1.字符串的新方法  includes() 包含属性 startsWith() 头部开始是否包含 endWith() 字符串是否在尾部   ========三个返回值都为布尔值  第二参数为数字  e ...