Home > Article > Backend Development > linux下vim实现php远程调试环境搭
首先是必需组件的安装。
有三个,vim的DBGp插件,php的xdebug扩展,Chrome浏览器的xdebug helper扩展。
一: vim 安装 dbgp client 插件 下载 DBGp client
$ cd ~/.vim/$ wget http://www.vim.org/scripts/download_script.php?src_id=7285 -O debugger.zip$ unzip debugger.zip
二:PHP安装xdebug扩展
具体安装方法就不讲了,网上例子很多. 官方安装说明 .
我把我的配置信息贴出来:
[Xdebug]zend_extension="/home/s/apps/php-5.2.6/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"xdebug.profiler_enable=0 ;开启profilexdebug.profiler_enable_trigger=1 ;使用触发器开启profilexdebug.profiler_output_dir="/home/s/logs/xdebugLog"xdebug.auto_trace=0 ;开启tracexdebug.trace_enable_trigger=1 ;使用触发器开启tracexdebug.trace_output_dir="/home/s/logs/xdebugLog"xdebug.cli_color=1xdebug.collect_params=2xdebug.collect_return=on ;remote debug ;开启远程调试xdebug.remote_enable=1xdebug.remote_autostart=Offxdebug.remote_port=9000 ;远程端口,不是你web服务的端口,如果没有冲突,一般不用修改。其中需要注意的是有注释的地方,不自动开启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-introduction20140226142342
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的信息。
xdebug_helper_debug_profile_trace
xdebug_output_file_trace_profile
winCacheGrind_output
最后,是 如何开启远程调试 .
用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 也可以开启远程调试的。xdebug_remote_debug_how
转自: http://digdeeply.org/archives/tag/dbgp