常用配置

xdebug.var_display_max_children

整数类型,默认值128。用于控制通过xdebug_var_dump(),var_dump()方法时显示数组中子数组的个数或对象中属性的个数,设定为-1关闭该限制。

xdebug.var_display_max_data

整数类型,默认值521。用于控制xdebug_var_dump(),var_dump()方法时显示输出的字符串的长度,设定为-1关闭该限制。

xdebug.var_display_max_depth

整数类型,默认值3。用于控制通过xdebug_var_dump(),var_dump()方法时打印数组或对象时显示的层数,即深度。可设定的最大值为1023,也可以将其设定为-1以达到设定最大值的效果。

xdebug.collect_params

整数类型,默认值0。如果一个方法的访问记录被跟踪时,打开该选项,会同时记录传递给该方法的所有参数信息。可设定一下值:

0 关闭

1 记录参数的类型和长度,如string(6), array(8)

2 Type and number of elements, with a tool tip for the full information

3 Full variable contents (with the limits respected as set byxdebug.var_display_max_children,xdebug.var_display_max_dataandxdebug.var_display_max_depth.

4 Full variable contents and variable name.

xdebug.collect_vars

布而类型,默认值0。用于收集当前作用域下哪些变量被使用。

常用方法

voidxdebug_debug_zval([string varname [, ...]])

用于打印一个或多个变量结构的相关信息。包括变量类型,值以及变量引用次数。如果传递的是一个数组,则会递归数组中的所有元素。

voidxdebug_dump_superglobals()

该方法用于打印出所有通过xdebug.dump.*配置属性在php.ini文件中指定的所有全局变量信息,如,在php.ini文件中增加如下配置信息:

1 xdebug.dump.GET=*

2 xdebug.dump.SERVER=REMOTE_ADDR

在代码中通过调用xdebug_debug_zval()方法打印出GET下的所有变量信息以及SERVER['REMOTE_ADDR']变量信息。

arrayxdebug_get_declared_vars()

返回一个数组,包含当前作用域下的所有变量名称,需要打开xdebug_collect.vars配置。

arrayxdebug_get_function_stack()

一次打印出出调用xdebug_get_function_stack()方法所在的方法的所有方法调用信息。

integerxdebug_get_stack_depth()

返回当前栈的深度,main()深度为0

xdebug跟踪

xdebug可以将文件的运行流程及情况输出到日至文件中,通过访问这写文件,可以获取项目代码的运行流程以及相关一些信息,如内存使用率,内存峰值,执行时间等等。

输出到日至中的书写格式可以分为三种:易于阅读的格式,机器容易解析的格式以及HTML格式,可以通过xdebug.trace_format属性进行控制,其值有一下三种:

1 shows a human readable indented trace file with:time index,memory usage,memory delta(if the settingxdebug.show_mem_deltais enabled),level,function name,function parameters(if the settingis enabled),filenameandline number.

2 writes a computer readable format which has two different records. There are different records for entering a stack frame, and leaving a stack frame. The table below lists the fields in each type of record. Fields are tab separated.

3 writes a trace formatted in (simple) HTML.

同样,输出结果也会受到其他一些配置选项的影响,如xdebug.collect_return,xdebug.collect_assignments

为VIM添加解析日至文件的语法高亮功能:

首先将源代码文件夹下的contrib/xt.vim复制~/.vim/syntax目录下

然后编辑~/.vim/filetype.vim并加入一下代码:

1 augroup filetypedetect2 au BufNewFile,BufRead *.xt setf xt3 augroup END

此时在使用vim打开生成的日志文件,即可看见对日志文件的格式化和高亮显示。

代码跟踪相关配置选项:

xdebug.auto_trace

boolean类型,默认值0。用于设定在脚本运行前是否自动跟踪方法的调用信息。

xdebug.collect_assignments

xdebug.collect_return

boolean类型,默认值0。用于设定是否返回调用方法的返回值。

xdebug.show_mem_delta

boolean类型,默认值0。如果启用该选项,并且输出格式为易于阅读式,则会在日志文件中显示调用两个方法之间的内存使用差异情况。

xdebug.trace_enable_triggerboolean类型,默认值0。如果开启该选项,可以通过向POST或GET传递XDEBUG_TRACE参数来启用系统跟中功能,或者设定一个名为XDEBUG_TRACE的cookie信息,为了防止每次请求都会生成一个日志文件,需要将xdebug.auto_track设置为0。

xdebug.trace_format

xdebug.trace_optionsboolean类型,默认值0。如果启用该选项,则之后的请求生成的日志信息会追加到日志文件中而不是替换当前日志文件中的内容。

xdebug.trace_output_dir字符串类型,用于设定保存日志文件的路径信息

xdebug.trace_output_name用于设定生成的日志文件的名字。

利用xdebug检测项目性能

xdebug提供了一个叫profiler的功能,可以用来检测项目的性能,以便能够找出项目的瓶颈,使用该功能,首先需要了解一些配置参数:

xdebug.profiler_enable

boolean类型,默认值0。用于设定是否开启生成报告文件,如果设定为1,每次请求都会生成一个性能报告文件。

xdebug.profiler_enable_trigger

boolean类型,默认值0。如果开启该选项,则在每次请求中如果GET/POST或cookie中包含XDEBUG_PROFILE变量名,则才会生成性能报告文件(前提是必须关闭xdebug.profiler_enable选项,否则该选项不起作用)。

xdebug.profiler_output_dir

字符串类型。用于设定生成的报告文件的存放的路径。

xdebug.profiler_output_name

字符串类型。用于设定生成的报告文件的名字,如cachegrind.out.%t.%p

查看生成的性能分析文件

可以通过KCacheGrind工具用来打开生成的报告文件,ubuntu下安装该工具:

1 sudo apt-get install kcachegrind

或者使用

在上述说到的生成方法跟踪报告和系统性能报告,大部分时候会选择手动选择是否生成报告文件,即开启*_enable_trigger选项,这是当需要生成报告时,通过手动添加需要传递的参数来生成报告文件。

可通过向浏览器添加xdebug插件来快速设定这些选项:

chrome:https://chrome.google.com/extensions/detail/eadndfjplgieldjbigjakmdgkmoaaaoc.

firefox:https://addons.mozilla.org/en-US/firefox/addon/58688/.

宝塔 开启xdebug_xdebug使用说明相关推荐

  1. 宝塔 开启xdebug_Xdebug 使用说明

    Xdebug 使用说明 先说下配置方法: wincachegridd:为xdebug输出文件分析工具 2 把xdebug copy到php扩展文件目录:d:/wamp/bin/php/php5.2.5 ...

  2. 宝塔 开启xdebug_Xdebug安装与使用

    为什么需要Debugger? 很多PHP程序员调试使用echo.print_r().var_dump().printf()等,其实对 于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序 ...

  3. 宝塔 开启xdebug_XDebug的配置和使用

    1 Xdebug介绍 Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具) 可以用来跟踪,调试和分析PHP程序的运行状况. XDebug其实是一个.dll文件,将它放置到PHP程序的 ...

  4. 利用宝塔 开启apache tomcat ssl 失败的解决方法

    利用宝塔 开启apache tomcat ssl 失败的解决方法 参考文章: (1)利用宝塔 开启apache tomcat ssl 失败的解决方法 (2)https://www.cnblogs.co ...

  5. 宝塔开启面板ssl后无法访问-解决方案

    宝塔开启ssl后无法访问宝塔面板 很多朋友在使用宝塔过程中对宝塔面板的一些功能比较好奇,中所周知"好奇害死猫" 宝塔不小心开启了面板ssl后无法访问面板 解决方案 进入服务器实例, ...

  6. 宝塔php socket,宝塔开启websocket 小程序聊天功能开发

    前言 在网上找了各种各样宝塔开启websocket的方法,结果试了一天都不行,无奈只有请教大神出手 摒弃 首先在全网基本上没有宝塔配置的教程,有反正我是试了一天都不行,他们的统一配置都是在" ...

  7. 宝塔 开启_宝塔面板安装完的一些列操作

    前言 新安装的宝塔会有很多地方需要配置,如果懂的大佬可以跳过,如果是小白可以按照辉哥的教程一步步操作,辉哥是以虚拟机进行操作的,但是服务器也是一样的道理! 安全入口 因为现在使用宝塔面板的人数在激增. ...

  8. 宝塔开启ngx_pagespeed加速网站

    本文安装版本宝塔7.4.2,其他版本可能略有不同. ngx_pagespeed这货能干些什么呢?webp.合并js.合并css.压缩html延迟加载等等就是前端优化 的那些个破事.当然会牺牲一点点服务 ...

  9. 宝塔开启nginx防火墙导致nginx无法启动

    问题现象:宝塔搭建的nginx无法启动 nginx -t 报错 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok ngi ...

最新文章

  1. OSError: Cannot initialize new instance of inotify, Errno=Too many open files (EMFILE) 问题解决
  2. 2016 EasyAR 开发者大会定档AWE,AR SDK重大升级进入倒计时
  3. 团队开发项目-NABCD模型
  4. Boost:序列化之text_wiarchive和和text_woarchive
  5. decode and nvl and sign
  6. 在阿里云服务器上安装docker
  7. java系统系统异常处理,银行系统(Java)异常处理
  8. hdu2243考研路茫茫——单词情结
  9. 知行动手实验室可以用来做什么?
  10. 图像处理总结:Canny边缘检测(二)
  11. 实现加载页Loading Page 的几种方法
  12. 路由添加失败 参数错误_Django框架基础之路由详解 | 技术
  13. eclipse工具性能优化方法
  14. Mstar 光机遥控器适配
  15. nofollow标签的写法与作用
  16. sprintf,snprintf的用法(可以作为linux中itoa函数的补充)
  17. Springboot毕业设计毕设作品,人脸识别签到考勤系统设计与实现
  18. 【数据库】用户管理---君权神授
  19. UV系和相机坐标系相互转换
  20. Python程序员看见一个好看的手机壁纸网站,开撸!

热门文章

  1. 标准网络推广优势,网络推广的主流方法
  2. c语言酒店管理系统流程,c语言的酒店管理系统方案.doc
  3. php e notice,PHP error_reporting(E_ALL ^ E_NOTICE)错误报告详细说明
  4. 假艾斯机器人_奥特曼格斗进化3艾斯机器人玩法 艾斯机器人使用心得
  5. vulnhub靶机ha:wordy
  6. pycharm 中一键添加引号 pycharm快捷键大全
  7. JQuery动画之滑入滑出动画
  8. 提高安全意识,过无悔人生
  9. 斯福尼双核集成采暖系统 冬天里的采暖神器
  10. 【ConfluxNews】2023.3.20 清华大学罗玫教授带领学生来到 Conflux 参与了“北斗计划”区块链实践课