常用PHP调试小技巧

一个有几百行的函数,里面有很多return,现在函数异常返回了,但是我不知道是从哪一行返回的,这时候呢,我一般的做法都是每一行echo();die();太费事了

1、最简单经典的var_dump()

2、配置error_log,能够解决很多疑难杂症

3、firebug + firephp或者chrome + chromephp

4、xdebug

下面是xdebug调试与配置


他解决了我长久以来一个代码调试问题:比如有以下几个场景:

1、一个有几百行的函数,里面有很多return,现在函数异常返回了,但是我不知道是从哪一行返回的,这时候呢,我一般的做法都是每一行echo();die();太费事了。

2、接触一个新的框架,代码执行出现异常,怎么办呢,肯定也是一行一行的echo();die();

3、想学习一个新框架,想知道代码的执行轨迹:执行了哪些类、调用了哪些类的方法,等等。

现在呢,xdebug的代码跟踪,能帮我们轻松解决上面的问题。

xdebug的安装(网上我看到了很多的都是在说xdebug、phpstorm、chrome咋配合起来远程调试,搞得大家好像觉得xdebug用起来那么费事,那么高级,其实没必要):

1、安装php xdebug扩展(不再细说)

2、配置:这里只讲代码跟踪相关的配置:

1

2

3

4

5

6

7

8

9

10

11

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目录下了:

我截取一段trace日志,大家看下,就能感知到这个用法的方便了:

1、显示了参数的值:就这一点,我想就会节省我们phper很多的调试时间(默认不显示参数值,只显示调用的函数。需要添加xdebug.collect_params这个配置)

2、显示了代码的执行轨迹。类似于c语言的单步调试吧。


1701 2017-09-16

JavaScript >>

Linux >>

PHP >>

HTML/CSS >>

C/C++ >>

MySql >>

常用工具使用 >>