Zend Studio集成Xdebug断点调试详解

转载 2016年08月31日 14:30:03

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

最终配置如下图所示。

Xdebug配置参数

3、配置Zend Studio

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

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

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

PHP Debug配置界面

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

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

PHP Servers界面

将Debugger类型改为Xdebug。

编辑PHP Server

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

PHP可执行环境界面

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

配置PHP可执行环境

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

配置后的调试类型均为Xdebug

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

Zend Studio Xdebug默认配置

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

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

Zend Studio添加断点

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

点击调试当前页面

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

输入用于调试的URL

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

进入调试透视图

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

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

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

Zend Studio 断点调试透视图窗口

相关文章推荐

终于发现zend studio + xdebug设置断点各种不正常的原因所在!

zendstudio+xdebug断点时有效时无效
  • cyan007
  • cyan007
  • 2016年06月15日 17:52
  • 3061

Zend Studio中如何配置和使用xdebug断点调试工具?

断点调试,也叫单步调试,是指程序开发中,为了找到程序的bug,通常采用的一种调试手段,一步一步自动跟踪程序执行的流程,根据变量的值,找到错误的原因。 很多集成的开发工具(IDE),如Zend Stu...

ZendStudio调试配置(XDebug)

当前配置环境: ZendStudio10.6.

在 Zend Studio 12.5 里下断点调试运行 PHP 源代码

本文解决如下问题:在Zend Studio里面下断点然后调试运行(Debug As PHP Web Application),却发现网站正常跑起来了,断点根本就没生效。断点不生效,主要原因是调试器没有...
  • liigo
  • liigo
  • 2015年09月17日 16:04
  • 15433

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

完美解决youtube上传者已禁止在您的国家/地区播放此视频的方法

使用goagent或者wallproxy上youtube视频网站的时候,部分视频会提示“上传者已禁止在您的国家/地区播放此视频”在goagent吧ishare_cn_ms大神已经分享解决方法之一,就是...

centos7搭建ss以及加速

最近发现vultr绑定信用卡后送20刀,最便宜的套餐每月5刀,也够用了,就愉快地决定先用着了。 由于是第一次接触服务器端,于是选择了最简单的python版普通的ss。据说ssr和新版的ss-libe...

Zend Studio 使用 Xdebug 断点调试

部分内容参考自 这里 1, 下载 Xdebug 1 # 下载地址 2 # http://xdebug.org/...

史上最佳 Mac+PhpStorm+XAMPP+Xdebug 集成开发和断点调试环境的配置

在上一篇 PHP 系列的文章《PHP 集成开发环境比较》中,我根据自己的亲身体验,非常简略的介绍和对比了几款常用的集成开发环境,就我个人而言,比较推崇 Zend Studio 和 PhpStor...

史上最佳 Mac+PhpStorm+XAMPP+Xdebug 集成开发和断点调试环境的配置

史上最佳 Mac+PhpStorm+XAMPP+Xdebug 集成开发和断点调试环境的配置   在上一篇 PHP 系列的文章《PHP 集成开发环境比较》中,我根据自己的亲身体验,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Zend Studio集成Xdebug断点调试详解
举报原因:
原因补充:

(最多只允许输入30个字)