博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vim XDebug调试PHP php远程调试
阅读量:5141 次
发布时间:2019-06-13

本文共 2545 字,大约阅读时间需要 8 分钟。


 

原文地址:

原理上,这种调试方式主要依靠Vim的插件“”来实现,该插件实现了一个服务端。调试的时候Xdebug将会与服务端建立一个连接进行通信,接收服务端的调试指令并返回调试结果。

安装和配置

XDebug

安装:

       ubuntu 下直接 apt-get install php5-xdebug  安装

       到/usr/lib/php5/20090626+lfs  即可看到xdebug.so 可拷贝到你指定的模块地址

 

配置:(php.ini文件)

  • 加载Xdebug扩展:

    zend_extension=/<extension_dir>/xdebug.so      #<extension_dir>为你拷贝到的目录     

  • 配置xdebug开启dbgp远程调试

    xdebug.remote_enable=on

    xdebug.remote_handler=dbgp

Vim的Debugger插件

这个简单,只需要将插件下载回来,解压放到~/.vim/plugin目录

调试过程

用Vim打开要调试的PHP文件,按<F5>进入调试状态。请移步《》,上面写的详细一些。

注意事项

实际过程中,如果你发现安装完成仍然无法正常的调试PHP,极可能是下面的原因造成的:

一、Xdebug加载不成功

可以通过phpinfo或者是”php -m”来确认Xdebug是不是加载成功。加载不成功的原因可能是由于PHP是”Debug Build”(可以通过phpinfo确认),那么php.ini里不应当用“zend_extension=/<extension_dir>/xdebug.so”,而应该用“zend_extension_debug=/<extension_dir>/xdebug.so”;

其它方面就是要注意xdebug.so路径是否正确,Apache服务或者是fastcgi服务有没有重启。

phpinfo 显示显示如下,表示正常

二、 调试会话已经过期

XDebug 通过一个Cookie来判断你是否进行调试对话,请注意这个Cookie的过期时间是1个小时。某天你埋头工作的时候发现Vim + Xdebug刚刚还work,怎么一下又不work了,那多半是由于这个会话已经过期了。

只要在URL后面带上参数 “XDEBUG_SESSION_START=1″,调试会话就会延续1小时。

访问路径:

For clean URLs use: http://example.com/admin/feature?XDEBUG_SESSION_START=1

Otherwise use: http://example.com?q=admin/feature&XDEBUG_SESSION_START=1

 

四、更改调试等待时间 (默认5秒钟)

 

编辑debuger.py

 

 

 2. press <F5> and browse php file within 5 seconds. :-) 

    If you did setup correctly, server will make connection to vim. 
    [ you can change port by editing last line of debugger.vim ] 
    all the windows currently opened will be closed and debugger interface will be shown. 
3. in debuggin mode 
<F1> : resizing windows 
<F2> : step into 
<F3> : step over 
<F4> : step out 
<F6> : stop debugging 
<F11> : shows all variables 
<F12> : shows variable on current cursor 
,e : evalute expression and display result. cursor is automatically move to watch window. type line and just press enter.
command line command) 
:Bp    : toggle breakpoint on current line 
:Up    : goto upper level of stack 
:Dn    : goto lower level of stack 
4. press <F6> to stop debugging. 
    then, debugger windows will be closed and windows will be restored. 
    ( holy :mksession feature )

参考和延伸阅读

 


首先下载xdebug2.1.0,在官方首页下载源代码,下载回来的文件名是:xdebug-2.1.0.tgz

xdebug的版本需与您的php版本相对应,由于偶的php是5.3.2,所以下载xdebug2.1.0

  

Xml代码  
  1. cd /your/download/path  
  2. tar zxvf xdebug-2.1.0.tgz  
  3. cd xdebug-2.1.0  

 

运行phpize

Xml代码  
  1. phpize  

 

     如果没有将phpize加入$PATH,则应该使用全路径

 

这里不需要--prefix,编译好之后直接把modules里的xdebug.so文件复制走即可。

Xml代码  
  1. ./configure --enable-xdebug   
  2. --with-php-config=/usr/local/php/bin/php-config  

 

 

Xml代码  
  1. make  

 

 

把xdebug.so复制到了php安装目录,装php的时候指定了安装目录,所以复制到/usr/local/php/xdebug里。随便你复制到哪都行,只要你清楚知道。。。需要改下面一条命令的路径为你自己的。

转载于:https://www.cnblogs.com/wangkangluo1/archive/2012/04/13/2445670.html

你可能感兴趣的文章
字符串的操作
查看>>
性能优化之Java(Android)代码优化
查看>>
springMVC相关—文件上传
查看>>
由Oracle 11g SYSAUX 和 SYSTEM 表空间回收引发的联想
查看>>
uva 1416 Warfare And Logistics
查看>>
欲则不达
查看>>
盒子游戏
查看>>
OpenJudgeP1.10.08:病人排队__(刷题)_水题
查看>>
观察者模式
查看>>
Hadoop分布式文件系统中架构和设计要点汇总
查看>>
cout和printf
查看>>
UVa 10088 - Trees on My Island (pick定理)
查看>>
#C++PrimerPlus# Chapter11_Exersice4_mytimeV4
查看>>
iOS8 针对开发者所拥有的新特性汇总如下
查看>>
Jmeter + Grafana搭建实时监控可视化
查看>>
uCGUI字符串显示过程分析和uCGUI字库的组建
查看>>
h5唤起app
查看>>
SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
查看>>
[转]vs2010编译金山代码
查看>>
数学图形之Boy surface
查看>>