linux下vim实现php远程调试环境搭建:vim DBGp+xdebug+xdebug helper实现方便的远程开启Debugging, profiling & tracing
首先是必需组件的安装。
有三个,vim的DBGp插件,php的xdebug扩展,Chrome浏览器的xdebug helper扩展。
一: vim 安装 dbgp client 插件
下载 DBGp client
二:PHP安装xdebug扩展
具体安装方法就不讲了,网上例子很多.官方安装说明.
我把我的配置信息贴出来:
sudo vim /home/s/apps/php-5.2.6/etc/include/xdebug.ini
其中需要注意的是有注释的地方,不自动开启profile和trace,因为这样每次请求都会保存相应信息,会把磁盘爆掉的。把触发器打开,这样,只有在请求的时候带特定信息的时候,才会记录相应的性能信息。触发器的实现机制是:在请求时,如果GET/POST/COOKIE信息中包含特定的变量,会开启对应的debug,profile或trace,所以我们可以通过在web中访问页面时,添加对应的变量来开启相应的功能。如果每次都自己拼接这个,也挺麻烦,所以会介绍后边的xdebug helper的chrome扩展,想开启任何一个功能的时候,点击一下扩展就可以了。也就是说,这个扩展不是调试必须的,但是会让你感觉用起来很方便。
三:chrome扩展xdebug helper
地址:https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc
如果在 chrome://apps里搜索xdebug helper搜索不到,记得把你的语言改为 English.
xdebug helper两处配置要注意,
IDE Key要注意选择Other, 值为1,然后保存。
第二个是domain白名单,如果不希望每个页面都出调试的debug icon,就把开发时的域名填进来,比如localhost神马的。其实icon很小,也不太碍事,可以不用设置。
开始使用:
如果不要debug调试,只是需要记录profile和trace信息,看一下性能问题,那么很简单,直接在chrome访问对应的url,会在url右侧看到一个xdebg helper 的小icon,点击后,选择 profile或trace,再刷新,就可以在预先设置的目录见到对应的文件了。
cachegrind* 是profile的文件,trace* 是trace的文件。
在windows下使用WinCacheGrind可以方便的查看profile的信息。
最后,是如何开启远程调试.
用vim编辑程序文件,在需要中断的地方使用:Bp命令打上断点。然后按F5执行监听。
这个时候,vim会提示 waiting for a new connection on port 9000 for 5 seconds… ,所以这个时候你需要在5s内向服务端发起带中断的请求,在前边的url地址,我们把xdebug helper的debug选择上,刷新页面,vim就会进入中断了。右侧有相关提示,我们就可以按GDB的方式逐步调试啦。如果没有安装xdebug helper,也无所谓,自己手动在url上拼接一个参数: &XDEBUG_SESSION_START=1 也可以开启远程调试的。