xdebug是一个开源的php调试器,以php模块的形式加载并被使用。
windows 平台下: 一、安装xdebug模块 1、去下载相应版本php的模块文件,保存下载后的文件到php的ext目录,可以自己修改文件的名称,现在最新的版本是 2.0.1。 2、修改php.ini,增加如下信息 [Xdebug] zend_extension_ts="d:/php/ext/xdebug-xxx.dll" xdebug.auto_trace=on xdebug.collect_params=on xdebug.collect_return=on xdebug.trace_output_dir="d:/Temp/xdebug" xdebug.profiler_enable=on xdebug.profiler_output_dir="d:/Temp/xdebug" 参数解释: zend_extension_ts="d:/php/ext/xdebug-xxx.dll" 加载xdebug模块。这里不能用extension=xdebug-xxx.dll的方式加载,必须要以zend的方式加载,否则安装上后, phpinfo打印出来的里的xdebug段的会有XDEBUG NOT LOADED AS ZEND EXTENSION的警告信息。 xdebug.auto_trace=on 自动打开“监测函数调用过程”的功模。该功能可以在你指定的目录中将函数调用的监测信息以文件的形式输出。此配置项的默认值为off。 xdebug.collect_params=on 打开收集“函数参数”的功能。将函数调用的参数值列入函数过程调用的监测信息中。此配置项的默认值为off。 xdebug.collect_return=on 打开收集“函数返回值”的功能。将函数的返回值列入函数过程调用的监测信息中。此配置项的默认值为off。 xdebug.trace_output_dir="d:/Temp/xdebug" 设定函数调用监测信息的输出文件的路径。 xdebug.profiler_enable=on 打开效能监测器。 xdebug.profiler_output_dir="d:/Temp/xdebug" 设定效能监测信息输出文件的路径。 另外,xdebug 不能和 Zend Optimizer 以及其他 Zend 扩展 (DBG, APC, APD etc) 同时工作,目前这个问题正在修复中。 还有一些更为具体的参数设定,详见: 3、重启apache 这样,在本地运行php的时候,会在所设定的目录里产生一些调试信息的文件: * 函数调用过程监测信息文件的文件名格式:trace.××××××.xt。这个文件可以直接查看,里面包含了函数运行的时间,函数调用的参数值,返回值,所在的文件和位置等信息。内容格式还是相对直观的。 * 效能监测文件的文件名格式:cachegrind.out.××××××××。 这个文件也可以直接查看,不过信息格式不易被人类所理解, 所以我们需要接下来的一个软件。 二、安装wincachegrind 由于效能监测文件:cachegrind.out.××××××××文件的内容不易被人类所理解,所以我们需要一个工具来读取它。windows下就有一款这样的软件:wincachegrind。 1、到下载安装wincachegrind 2、安装运行后,点击Tools->options,设定你的working folder(php.ini里xdebug.profiler_output_dir的值) 这样就可以比较直观的查看效能监测文件的信息了。 控制输出CacheGrind文件名的控制 ubuntu 下安装 一、安装xdebug 1. 先到xdebug.org下载最新的源码包。 2. 编译安装 tar -zxvf xdebug-xxx.tgz cd xdebug-xxx phpize ./configure --enable-xdebug make sudo make install 3. 修改配置文件php.ini,添加下面一行 zend_extension_ts="/wherever/you/put/it/xdebug.so" 这里的/wherever/you/put/it/是 xdebug.so 所在的目录 第一行将装入 Xdebug 扩展;第二行将启用 Xdebug 的分析器功能,而第三行将启用扩展的调试功能。 一些推荐的配置 xdebug.default_enable = On xdebug.profiler_enable = On xdebug.show_exception_trace = On xdebug.show_local_vars = 1 xdebug.max_nesting_level = 50 xdebug.var_display_max_depth = 6 xdebug.dump_once = On xdebug.dump_globals = On xdebug.dump_undefined = On xdebug.dump.REQUEST = * xdebug.dump.SERVER = REQUEST_METHOD, REQUEST_URI, HTTP_USER_AGENT 4. 重启apache,然后再phpinfo信息里就可以看到 Xdebug 的部分了。 二、安装 Debug client 1. 下载 Debug client 2. 解压缩源代码包,然后安装 cd debugclient ./configure --with-libedit make sudo make install