有哪些 PHP 调试技巧?
xdebug_start_trace();
/* 业务代码 */
xdebug_stop_trace();
他解决了我长久以来一个代码调试问题:比如有以下几个场景:
1、一个有几百行的函数,里面有很多return,现在函数异常返回了,但是我不知道是从哪一行返回的,这时候呢,我一般的做法都是每一行echo();die();太费事了。
2、接触一个新的框架,代码执行出现异常,怎么办呢,肯定也是一行一行的echo();die();
3、想学习一个新框架,想知道代码的执行轨迹:执行了哪些类、调用了哪些类的方法,等等。
现在呢,xdebug的代码跟踪,能帮我们轻松解决上面的问题。https://www.yuedecaifu.com
xdebug的安装(网上我看到了很多的都是在说xdebug、phpstorm、chrome咋配合起来远程调试,搞得大家好像觉得xdebug用起来那么费事,那么高级,其实没必要):
1、安装php xdebug扩展(不再细说)
2、配置:这里只讲代码跟踪相关的配置:
cat /etc/php.d/xdebug.ini
extension=/usr/lib64/php/modules/xdebug.so
;代码跟踪日志文件位置,注意要先新建这个traces目录,并设置777
xdebug.trace_output_dir = /tmp/traces
;代码跟踪日志文件格式
xdebug.trace_output_name = trace.%c.%p
;trace中显示函数的参数值,这个很有用,待会细说
xdebug.collect_params = 4
xdebug.collect_includes = On
xdebug.collect_return = On
xdebug.show_mem_delta = On
安装好之后,代码执行明细(trace),就存放在/tmp/traces目录下了:
<img src="https://pic4.zhimg.com/d2006b7fc37cc5a97e300655c797e90b_b.png" data-rawwidth="605" data-rawheight="221" class="origin_image zh-lightbox-thumb" width="605" data-original="https://pic4.zhimg.com/d2006b7fc37cc5a97e300655c797e90b_r.png">我截取一段trace日志,大家看下,就能感知到这个用法的方便了:我截取一段trace日志,大家看下,就能感知到这个用法的方便了:
<img src="https://pic3.zhimg.com/972289d2659f965081cc0ac2e8a8de02_b.png" data-rawwidth="811" data-rawheight="459" class="origin_image zh-lightbox-thumb" width="811" data-original="https://pic3.zhimg.com/972289d2659f965081cc0ac2e8a8de02_r.png">1、显示了参数的值:就这一点,我想就会节省我们phper很多的调试时间(默认不显示参数值,只显示调用的函数。需要添加xdebug.collect_params这个配置)1、显示了参数的值:就这一点,我想就会节省我们phper很多的调试时间(默认不显示参数值,只显示调用的函数。需要添加xdebug.collect_params这个配置)
2、显示了代码的执行轨迹。类似于c语言的单步调试吧。
就这些了,反正用了xdebug,我是觉得debug的时候节省了大量时间,分享给大家,希望对你们也有帮助。
有哪些 PHP 调试技巧?的更多相关文章
- 【工具】VS2010常用调试技巧(1)
调试是一个程序员最基本的技能,其重要性不言自明.不会调试的程序员就意味着他即使会一门语言,却不能编制出好的软件.本文就本人在开发过程中常用的调试技巧作下简单呢介绍,希望对大家有所帮助,能力超群者请绕道 ...
- Visual Studio高级调试技巧
1. 设置软件断点,运行到目标位置启动调试器 方法①:使用汇编指令(注:x64 c++不支持嵌入汇编) _asm 方法②:编译器提供的方法 __debugbreak(); 方法③:使用windows ...
- 【转】你所不知道的Android Studio调试技巧
这篇写Android studio debug技巧个人觉得写得不错,转自:http://www.jianshu.com/p/011eb88f4e0d# Android Studio目前已经成为开发An ...
- VS调试技巧,提高调试效率(转):
如果你还没有使用过这些技巧,希望这篇博文能帮你发现它们. 它们学起来很容易,能帮你节省很多时间. 运行到光标(Ctrl+ F10) 我经常看见人们是这样来调试应用程序的: 他们在应用程序需要调试的代码 ...
- iOS各种调试技巧豪华套餐
转载自http://www.cnblogs.com/daiweilai/p/4421340.html 目录 前言 逼优鸡 知己知彼 百战不殆 抽刀断Bug 普通操作 全局断点(Global Break ...
- xcode调试技巧
xode报错有时挺无厘头,完全不知道哪里出的问题,最后还得用排除法,记录一些工作中认为有用的调试技巧 1.左侧视图点断点视图,左下角点加号,选择exception breakpoint,类型选c++, ...
- 你所不知道的Android Studio调试技巧
转载:http://www.jianshu.com/p/011eb88f4e0d Android Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手.作为开发者,调试并发现bug ...
- Visual Studio原生开发的20条调试技巧(下)
我的上篇文章<Vistual Studio原生开发的10个调试技巧>引发了很多人的兴趣,所以我决定跟大家分享更多的调试技巧.接下来你又能看到一些对于原生应用程序的很有帮助的调试技巧(接着上 ...
- Visual Studio原生开发的10个调试技巧
这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧.我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧.(如果你是工作在托 ...
- Visual Studio的调试技巧
Visual Studio的调试技巧 [原文地址] Debugging Tips with Visual Studio 2010 [原文发表日期] 2010/8/19 10:48 AM 这是我写的关于 ...
随机推荐
- phalcon: 查找记录(Finding Records)可用的查询设置如下:
可用的查询设置如下: 参数 描述 举例 conditions Search conditions for the find operation. Is used to extract only tho ...
- PS去掉图片上的文字的6种基本方法,动态教程
1.使用仿制图章工具去除文字这是比较常用的方法.具体的操作是,选取仿制图章工具,按住Alt键,在无文字区域点击相似的色彩或图案采样,然后在文字区域拖动鼠标复制以复盖文字.要注意的是,采样点即为复制的起 ...
- java 模板
模板模式: 解决某类事情的步骤有些是固定的,有些是会发生变化的,这时我们提供 一个模板代码,从而提高效率. 模板模式的作用: 1.解决这类事情其中一件的解决方案. 2.分析代码,把发生变化的代码抽象取 ...
- 【hdu2196】Computer
hdu 2196 computer 题意 给你一棵树,边有权值. 对于每一个点,求其与其距离最远的点的距离. 分析 思路1:树的直径 利用直径的性质进行求解,网上资料很多,这里不赘述. #includ ...
- 数据库函数--nvl、coalesce、decode比较
SQL中 nvl().coalesce().decode()这三个函数nvl(bonus,0) 2个参数 if bonus is null return 0 else return bonus,ora ...
- container 的背后
如果要看laravel的单个功能的源代码,首先去找对应得ServiceProvider,例如加密功能hash,则按一下步骤查看源代码: HashServiceProvider.php(主要是看regi ...
- 设置pictureBox的边框颜色
private void pictureBox2_Paint(object sender, PaintEventArgs e) { PictureBox p = (PictureBox)sender; ...
- jmeter 建立一个监控测试计划
监控 压力测试和系统管理是有用的. 使用压力 测试,服务器性能监控提供了额外的信息. 这也使得它更容易看到服务器性能之间的关系 在客户端和响应时间. 作为一个系统管理工具, 监控提供了一种简单的方法来 ...
- html 标签总结
<q>标签,短文本引用 例如“聪明秀出为之英,胆略过人为之雄.” <blockquote>标签,长文本引用 <blockquote>标签的解析是缩进样式. 没有HT ...
- Linux查看系统信息(操作系统版本,进程,任务,CPU,内存,磁盘等信息)
查看操作系统: cat /proc/version # 内核版本 cat /etc/issue # 发行版本 head -n 1 /etc/issue uname -a lsb_release ...