• PHP程序的debug

PHP程序的debug,无论是cli方式还是web方式,都需要使用第三方的debug工具。PHP5.6之前,本身自带的debug功能,仅限于日志输出。

推荐使用免费xdebug。Xdebug作为zend扩展存在。可以在php安装后,通过phpize单独被编译安装。

xdebug的安装有几点注意

  1. 如果不知道下载什么xdebug版本,可以在这里,通过上传phpinfo信息,由系统给出建议:http://xdebug.org/wizard.php
  2. 安装后,php.ini中需要指定的xdebug.so方式,可能因为php版本不同而不同。详情见此:http://xdebug.org/docs/all#configure-php
  3. make install如果安装不成功,可以去modules文件夹下,手动拷贝xdebug.so到1中建议的文件夹下

xdebug的使用有几点注意

  1. 如果需要设置断点和单步跟踪,可以使用xdebug自带的debugclient。位于debugclient文件夹下。安装方法:http://xdebug.org/docs/all#debugclient
  2. xdebug的代码跟踪,都是通过remote debug来完成;debugclient其实是起了一个server用于监听并等待需要debug的请求;所有的断点设置都是通过debugclient去进行的。详细的控制命令,可以参考:http://xdebug.org/docs-dbgp.php
  3. PHP采用debugclient作为server,而不是类似Java的remote debug方式。其原因在于一方面PHP代码不是类似Java编译执行可以直接看到源码,另一方面debugclient可以根据会话设置,来区分对哪些请求才需要进行debug和单步追踪。这对多并发的web应用是非常有意义的(当然java也可以通过设置条件断点来实现)。参考:http://xdebug.org/docs/all#activate_debugger
  4. 对于cli的php程序进行debug时,需要设置XDEBUG_CONFIG。可以参考:http://stackoverflow.com/questions/13284795/setting-xdebug-breakpoints-solely-in-command-line

关于gdb进行PHP程序的debug,主要用于对zend engine本身、PHP源码和扩展的debug。这也是为什么php源码中自带gdb脚本.gdbinit的原因。

PHP程序z中xdebug工具简要使用方法的更多相关文章

  1. CDR中调和工具的使用方法

    CDR中的调和工具也是一个神奇的工具,和AI中的混合工具类似,可以做出很多好看的形状,下面先看下他的基本操作方法. 要了解CorelDRAW平面设计软件中的cdr调和工具怎么用,首先要知道调和工具的作 ...

  2. 关于我在17号“一个查询任意年份中任意月份的天数”程序编写中的代码&第二种方法!

    PS:下面的代码是我对于17号的练习题的一些新的看法(其实就是从另一个角度思考问题) package day20180917;import java.util.Scanner;//导包public c ...

  3. [转]PhpStorm中如何使用Xdebug工具,入门级操作方法(亲测有效)

    0 前言 网上试过很多方案,有的根本无效,有的是有效一段时间后失效,然而这个方法是一直有效果,所以留底记录一下 1 简介 PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全,快速 ...

  4. Eclipse与Android源码中ProGuard工具的使用

    由于工作需要,这两天和同事在研究android下面的ProGuard工具的使用,通过查看android官网对该工具的介绍以及网络上其它相关资料,再加上自己的亲手实践,算是有了一个基本了解.下面将自己的 ...

  5. OpenCV成长之路(3):模仿PhotoShop中魔术棒工具

    本文的主题实际上是图像的颜色空间的转换,借助一个颜色选取程序来说明OpenCV中颜色转换函数的用法以及一些注意事项. 一.几种常见的颜色空间: RGB颜色空间:RGB采用加法混色法,因为它是描述各种“ ...

  6. 一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。

    主要掌握String中的方法 char[] toCharArray()           将此字符串转换为一个新的字符数组. int indexOf(String str)           返回 ...

  7. Unity3D中的工具类

    1.时间:Unity提供了Time类,这个类主要用来获取当前的系统时间. Time.time:从游戏开始后开始计时,表示截止目前共运行的游戏时间. Time.deltaTime:获取Update()方 ...

  8. Android应用程序的Activity启动过程简要介绍和学习计划

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6685853 在Android系统中,Activ ...

  9. Mac OS平台下应用程序安装包制作工具Packages的使用介绍(补充)

    上一篇:Mac OS平台下应用程序安装包制作工具Packages的使用介绍 补充说明 上一篇文章中介绍了如何使用Packages如何创建mac下的安装包.但是这样制作出来的安装包只能安装到系统的文件路 ...

随机推荐

  1. 参照nopCommerce框架开发(NextCMS)

    很久没有更新博客了,现在已经不写.NET,转前端半年多了. 半年前在创业公司,做电子商务网站,用的是NopCommerce框架(3.2),这个框架还是相当不错的,经过一段时间的摸索,基本入门,于是就开 ...

  2. android 编译 release 签名

    1.编译 ionic build --release android 2.签名文件 keytool -genkey -alias kwwy -keyalg RSA -validity 40000 -k ...

  3. square开源vim,tmux配置在linux上使用

    首先安装需要的软件 apt-get install vim ack-grep git tmux gnome-terminal ctags xclip silversearcher-ag 这里tmux需 ...

  4. NSString Byte NSData 字节(字符)字符串

    NSUTF8StringEncoding 3个字节(字符)一个中文字符 一个字节一个英文字符

  5. RESTful API 设计指南【转】

    网络应用程序,分为前端和后端两个部分.当前的发展趋势,就是前端设备层出不穷(手机.平板.桌面电脑.其他专用设备......). 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信.这导致AP ...

  6. Logstash日志搜集

    软件准备: logstash-2.1.0.zip elasticsearch-2.1.0.zip kibana-4.3.0-windows.zip Redis-x64-2.8.2104.msi 下载地 ...

  7. 有关web 语义的文章总结

         A web of data that can be processed directly and indirectly by machines.  --Tim Berners-Lee web ...

  8. Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载

    转载地址:http://blog.163.com/chenhui_java/blog/static/17267249420128101191860/ 注: 由于长期受转载毒害,所以本人日志均是原创:其 ...

  9. Xcode 报错信息

    1.CUICatalog: Invalid asset name supplied: 原因是: 使用的方法[UIImage imageNamed:@""]; @"&quo ...

  10. iOS-修改Status Bar

    一.在info.plist文件中添加一行不但要在 Status bar is initially hidden一行,选择为 YES. 二.在didFinishLaunchingWithOptions方 ...