转自:http://www.softown.cn/post/115.html

Xdebug是PHP开发中两个常用的断点调试工具之一(另一个为Zend Debugger)。

现在,我们在Zend Studio中集成PHP的Xdebug模块,从而在Zend Studio中实现断点调试功能。

1、下载、安装、配置Xdebug

关于如何在PHP中安装、配置Xdebug模块,请直接参考文章PHP安装配置Xdebug模块详解

2、Xdebug远程连接配置

想要在Zend Studio中使用Xdebug,就需要启用Xdebug的远程调试功能。

Xdebug与远程调试相关的参数,见下表。

配置参数选项 参数值类型与默认值 参数选项描述
xdebug.remote_enable boolean类型,默认值=0 是否启用Xdebug的远程调试功能(默认:未启用)
xdebug.remote_host string类型,默认值=localhost 指定远程调试的主机地址(可以为域名、主机名或IP地址)
xdebug.remote_port integer类型,默认值=9000 指定远程调试的端口号
xdebug.remote_handler string类型,默认值=dbgp 指定远程调试的处理协议,值可以为"php3"、"gdb"、"dbgp"。其中,dbgp是唯一受支持的协议。php3可以选择旧版本PHP 3样式的调试器输出;gdb可以像dbgp一样地使用GDB调试器。Xdebug 2.1及以后版本只支持dbgp协议。
xdebug.remote_autostart boolean类型,默认值=0 通常情况下,你需要使用一个指定的HTTP GET/POST 变量来启动远程调试。如果该参数设为1,即使没有指定的变量,Xdebug也将一直尝试开始一个远程调试会话,并与客户端保持连接。
xdebug.remote_connect_back boolean类型,默认值=0 该参数自2.2版本开始引入。如果启用该参数选项,xdebug.remote_host参数将会被忽略。Xdebug将会尝试和发送请求到PHP服务器的所有客户端建立连接。Xdebug将通过$_SERVER['REMOTE_ADDR']来获取客户端所使用的IP地址。只要对方能够连接到服务器,就可以开启一个远程调试会话。
xdebug.remote_cookie_expire_time integer类型,默认值=3600 该参数自2.2版本开始引入。指定远程调试的有效期限(单位:秒)。
xdebug.remote_log string类型,默认值= 指定远程调试的日志文件路径,用于记录远程调试的日志信息,该文件在调试过程将会一直以追加模式保持打开,所以默认情况下,文件内容不会被覆盖。
xdebug.remote_mode string类型,默认值=req 指定远程调试的连接模式,值可以为"req"或"jit"。req表示一旦运行脚本就立即连接调试客户端。jit表示当错误发生时才立即连接调试客户端。

简而言之,如果保持其他参数默认(有些参数官方也不建议修改),我们只需要在php.ini中接着Xdebug原来的配置添加如下一行代码,即可启用远程调试功能。

xdebug.remote_enable=On

最终配置如下图所示。

3、配置Zend Studio

点击Zend Studio菜单栏的【Window】->【Preferences】。如下图所示,在首选项窗口中依次找到【PHP】->【Debug】的右侧面板。

在旧版本的Zend Studio中,菜单名直接为【PHP Debug】。

首先我们对PHP Server进行配置,也就是将PHP Server的调试器类型从默认的Zend Debugger改为Xdebug。点击图中编号①处的链接。

在PHP Server中对当前项目指定的Server进行编辑【Edit】。

笔者的abc.com是本地的虚拟主机配置,以便于直接映射到当前项目的根目录。

将Debugger类型改为Xdebug。

接着,我们配置PHP执行环境。点击前面图中编号②的链接,进入PHP的执行环境配置页面。如下图所示,Zend Studio为我们自带了几个采用Zend Debugger的执行环境,由于我们的PHP是自己独立安装的,而不是采用Zend Studio自身集成的。因此,我们将自己安装的PHP执行环境添加进来。点击【Add】按钮。

输入执行环境的名称,点击【Browse】按钮浏览我们自己安装的php.exe和php.ini的文件路径,并将PHP Debugger改为Xdebug类型,然后点击【Finish】。

此时,我们就可以看到PHP Server和PHP Executable的调试器类型都已经改为了Xdebug。面板下方还有一个默认勾选的【Break at First Line】,表示自动在第一行代码处添加断点(当然,你也可以取消【Break at First Line】选项,然后在调试之前根据需要添加断点)。

由于我们的Xdebug远程调试配置参数均为默认值,而Zend Studio为我们的Xdebug默认设置的参数也与之相同,因此我们不需要在【PHP】->【Debug】->【Installed Debuggers】中对Xdebug的参数进行修改(其默认参数如下图所示)。

由于我们更改了php.ini配置文件,因此需要重启服务器使其生效。

接着,如下图所示,我们就在指定的PHP文件中添加断点,并进行断点调试(由于我们刚才勾选了【Break at First Line】选项,因此这里可以不加断点,当我们进行调试时,Zend Studio会自动在第一行代码的位置进入断点调试模式)。

添加好断点后,我们就在该文件中点击右键,在弹出的关联菜单中点击【Debug As】->【PHP Web Application】(有些旧版本为【PHP Web Page】)。

接着在弹出的下列对话框中输入用于调试的URL。

接着,Zend Studio会提示我们是否进入调试透透视图,点击【Yes】。

最后,Zend Studio就自动进入了断点调试模式,如下图所示。

这个时候,我们就可以像使用Eclipse的调试快捷键来对PHP文件进行调试了。

Eclipse调试快捷键:F5(单步跳入)、F6(单步跳过)、F7(单步返回)、F8(跳过调试继续执行)。

下一篇:Xdebug断点调试的工作原理详解

Zend Studio集成Xdebug断点调试详解的更多相关文章

  1. VisualStudio 断点调试详解

    本文详细告诉大家 VisualStudio 断点调试的功能和使用方法,本文使用的是最新 VisualStudio2019 的功能,也许在你看到这篇博客的时候这个版本已经过时 本文将会按照从简单到复杂, ...

  2. 使用Firebug进行断点调试详解

    利用Firebug我们可以非常方便地对网页上的任何JavaScript代码进行断点调试. 首先,使用快捷键F12在当前页面打开Firebug,并切换到脚本选项卡. 其次,我们需要为指定的js代码添加断 ...

  3. 使用zend studio配置Xdebug调试PHP教程

    这里看过上面的文章后写一下自己的想法. 最近安装了zend studio 10.5,下载了破解文件.开始是下载了10.0的版本,但是注册码不正确.所以只能安装最新的10.5了. 接下来进行PHP代码调 ...

  4. zend studio安装xdebug调试工具

    1. 软件准备 登录xdebug 版本检测地址 http://xdebug.org/wizard.php  :将phpinfo产生的数据页面复制到其文本框内,显示类似如下内容: 二.将下载的xdebu ...

  5. 2019-11-29-VisualStudio-断点调试详解

    原文:2019-11-29-VisualStudio-断点调试详解 title author date CreateTime categories VisualStudio 断点调试详解 lindex ...

  6. netbeans工具使用xdebug断点调试php源码

    对有有经验的程序员,使用echo.print_r().print_f().var_dump()等函数足以调试php代码,如果需要在IDE工具中使用断点调试,xdebug就是一个非常好的php调试工具. ...

  7. Debian(Linux)+XAMPP(LAMPP)+Zend Studio + PHP +XDebug 完整的开发环境配置方法。 转摘:http://www.cnblogs.com/kungfupanda/archive/2010/11/25/1887812.html

    经历了3天左右的挣扎,终于在Linux下将 php开发工具 Zend Studio 的 xdebug安装成功,分享如下: 1,装XAMPP,安装方法链接如下:这里假设XAMPP的安装路径为:/opt/ ...

  8. Intellij IDEA中使用Debug调试详解

    转载:https://www.linuxidc.com/Linux/2017-09/146772.htm   Intellij IDEA中使用Debug调试详解 Debug用来追踪代码的运行流程,通常 ...

  9. Linux Bash命令关于程序调试详解

    转载:http://os.51cto.com/art/201006/207230.htm 参考:<Linux shell 脚本攻略>Page22-23 Linux bash程序在程序员的使 ...

随机推荐

  1. PostgreSQL Replication之第十章 配置Slony(5)

    10.5 给复制添加表和管理的问题 一旦我们增加了此表到系统中,我们可以将它添加到复制设置.这样做有点复杂.首先,我们必须创建我们自己的新表集合并把这个和我们已经有的表合并.因此,过一段时间,我们将有 ...

  2. VS的基本学习

    2016.4.11  下午 一.数据类型 1.基本数据类型 注:字节:例{10221021  8位数为一个字节    8b=1B} 1).整形(整数) ① short(比Int短   Int16){2 ...

  3. 如何准确进行T+0操作

    如何准确进行T+0操作 http://tangulunjin.com.cn/t0.html 常用的几种T+0模式 1.受外盘或者个股利好高开,高开一般在10点之前会有个回抽昨日收盘价的下跌波.特别是弱 ...

  4. 免安装版的MySQL的安装与配置

    1. 将下载的 mysql-noinstall-5.1.69-win32.zip 解压至需要安装的位置, 如: C:\Program Files; 2. 在安装文件夹下找到 my-small.ini ...

  5. poj 1475 || zoj 249 Pushing Boxes

    http://poj.org/problem?id=1475 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=249 Pushin ...

  6. PHP V5.2 中的新增功能,第 1 部分: 使用新的内存管理器

    PHP V5.2:开始 2006 年 11 月发布了 PHP V5.2,它包括许多新增功能和错误修正.它废止了 5.1 版并被推荐给所有 PHP V5 用户进行升级.我最喜欢的实验室环境 —— Win ...

  7. 杭电1241 Oil Deposits

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission ...

  8. 开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误

    已经解决,问题描述:在开发系统时候运行程序突然报出“WebDev.WebServer40.exe已停止工作”的错误,程序调试运行,发现程序在打开数据库时候报错,也就是Connection.Open() ...

  9. R12月末关帐的异常检查和处理

    在R12版本中月末关帐时经常会出现关不了的情况,而系统的异常报表的信息太过简单且不完全.结合项目本身发生的情况,做了以下的总结,希望能对公司其他R12项目有所启示. R12月度关帐的要点: 检查SLA ...

  10. ajax“显示弹窗详情”和“删除”功能练习

    1.查看详细信息,以弹窗的形式显示,使用ajax 2.批量删除 “查询”功能可以参考前面的文章,这里只讲解ajax“显示弹窗详情”和“删除”功能 第一:在body中的代码 <title>a ...