vim+vdebug调试php


官方文档

joonty/vdebug: Multi-language DBGP debugger client for Vim (PHP, Python, Perl, Ruby, etc.) 

 https://github.com/joonty/vdebug

官方文档

Xdebug: Documentation  

https://xdebug.org/docs/remote


Vim+XDebug调试PHP - 西代零零发 - 博客频道 - CSDN.NET  

http://blog.csdn.net/dc_726/article/details/8809696


vim安装vundle插件管理插件 - 我是guyue,guyue就是我O(∩_∩)O - 博客频道 - CSDN.NET  

http://blog.csdn.net/guyue35/article/details/53967432


PHPStorm设置xdebug工具调试php(使用浏览器或不使用浏览器两种方法) - 我是guyue,guyue就是我O(∩_∩)O - 博客频道 - CSDN.NET  

http://blog.csdn.net/guyue35/article/details/53967540     (涉及xdebug调试原理)





1安装PHP调试环境

安装了PHP-devel以后就会有phpize和php-config这两个脚本

yum installphp-devel.x86_64

windows上参考

Windows7下的php环境配置教程_php技巧_脚本之家 

http://www.jb51.NET/article/61507.htm


2安装Xdebug

2.1安装

参照官方文档:

Xdebug: Documentation  https://xdebug.org/docs/remote

PHPStorm设置xdebug工具调试php(使用浏览器或不使用浏览器两种方法) - 我是guyue,guyue就是我O(∩_∩)O - 博客频道 - CSDN.NET  http://blog.csdn.net/guyue35/article/details/53967540


用yum安装可能会失败,用pecl安装成功。

#yum installphp-pecl-xdebug.x86_64

pecl installxdebug

2.2修改权限

分配共享库xdebug.so执行权限

chmod +x /usr/lib64/php/modules/xdebug.so

2.3修改PHP配置

在/etc/php.d下新建配置文件xdebug.ini,加入内容如下:

===============================================================================

zend_extension =/usr/lib64/php/modules/xdebug.so

zend_debugger.allow_hosts=127.0.0.1

zend_debugger.expose_remotely=always

zend_debugger.httpd_uid=-1

xdebug.auto_trace = on

xdebug.auto_profile = on

xdebug.collect_params = on

xdebug.collect_return = on

xdebug.profiler_enable = on

xdebug.trace_output_dir = "/tmp"

xdebug.profiler_output_dir ="/tmp"

xdebug.dump.GET = *

xdebug.dump.POST = *

xdebug.dump.COOKIE = *

xdebug.dump.SESSION = *

xdebug.var_display_max_data = 4056

xdebug.var_display_max_depth = 5

xdebug.remote_enable=on       

xdebug.remote_handler=dbgp

xdebug.remote_host=127.0.0.1

xdebug.remote_port=9010

xdebug.remote_autostart=1

===============================================================================

标红的是关键内容,配置了xdebug.so的位置,并使xdebug开启远程调试模式。remote_port一项与后面将要讲到的Vim配置或者IDE配置一定要一致。

2.4验证安装成功

访问测试http://localhost/test.php,查看phpinfo()函数的输出中是否包含xdebug。



3安装Vim调试插件

3.1下载安装

Vim支持Xdebug的插件在这:

官方文档joonty/vdebug: Multi-language DBGP debugger client for Vim (PHP, Python, Perl, Ruby, etc.) 

 https://github.com/joonty/vdebug

涉及到vim的插件管理器vundle的使用:

vim安装vundle插件管理插件 - 我是guyue,guyue就是我O(∩_∩)O - 博客频道 - CSDN.NET  

http://blog.csdn.net/guyue35/article/details/53967432

或者直接下载xdebug的vim脚本

http://www.vim.org/scripts/script.php?script_id=1929

解压后,拷贝插件中的plugin文件夹到到.vim下。

         mkdir.vim

         cp–r debugger/* .vim/


3.2修改默认端口

在/home/user下,新建.vimrc文件,加入配置如下:

let g:debuggerPort = 9010

注意:要与xdebug.ini中端口配置一致。


4调试示例

以/export/data/discuz/test.php为例(/export/data/discuz是我的Discuz!X根目录)。

test.php内容如下:

===============================================================================

<?php

       phpinfo();

       $name = "cdai";

       print("hello {$name}");

?>

===============================================================================

用vim打开test.php,切换到print("hello {$name}"); 这一行,输入:Bp命令加上断点。

 

F5开始监听,此时需要在20秒钟内用浏览器访问test.php页。

         http://localhost/test.php?XDEBUG_SESSION_START=1

注意:Url中一定要加上XDEBUG_SESSION_START=1参数开启调试。

或者

手动cmd或终端下运行php test.php, 不过前提是需要设置系统环境

XDEBUG_CONFIG="idekey=phpstorm remote_host=localhost profiler_enable=1"

windows上在"电脑属性"中加入, linux上在~/.profile文件中加入, 记得source命令刷新.profile文件哦, 或者export命令临时导入环境变量.

 

输入Url后,调用就会停在断点那一行了。截图如下:



注意: 

假如按了F5后没有如上述截图下方出现, "waiting for a new connection..."字眼, 说明vdebu进入监听状态失败, 按照vdebug官方文档, 可能是因为:
1, 编译vim时没有加入python支持, 可以在命令行下vim --version或vim的命令模式下:version查看vim是否支持python特性(python2.7或3支持一种即可)
2, 系统没有安装python.


3, 也可能是端口冲突导致监听不成功, 在PHPStorm设置xdebug工具调试php(使用浏览器或不使用浏览器两种方法) - 我是guyue,guyue就是我O(∩_∩)O - 博客频道 - CSDN.NET  http://blog.csdn.net/guyue35/article/details/53967540  中有说明, 办法是错开监听的端口

4, 实测发现, 假如phpstome和vdebug都设置同一个端口, 在调试时候, 则phpstrom和vdebug只有其中一个顺利进入监听状态, 并顺利与xdebug进行调试通信, 失败的那一方会出现监听失败的提示, 甚至监听失败都不提示!!! 猜测可能是phpstorm或vdebug的bug.
如phpstorm可能提示




最后附:vdubug调试基本操作

[ Function Keys ]

 

 

<F1>

resize

调整窗口大小

<F2>

step into

 

<F3>

step over

 

<F4>

step out

 

<F5>

run

 

<F6>

quit debugging

 

<F11>

get all context

获取所有变量内容

<F12>

get property at cursor

获取当前光标变量

[ Normal Mode ]

 

 

,e

eval

 

[ Command Mode ]

 

 

:Bp

toggle breakpoint

 

:Up

stack up

 

:DN

stack down

 

 

参考文章

1利用Vim+XDebug在Linux上调试PHP

http://lds2008.blogbus.com/logs/115127244.html

 

2 Vim+XDebug调试PHP

http://xiaobin.net/201007/using-vim-and-xdebug-to-debug-php-code/



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值