php添加xdebug扩展

到官网 http://www.xdebug.com/download.php 下载

找到对应PHP版本的 Xdebug ,后面带 TS 的为线程安全,本机环境为 win7 64 + php-5.5.1-Win32-VC11-x64 ,下载的是 Xdebug 2.3.3 PHP 5.5 VC11 TS (64 bit)

安装:

Win :将下载的dll文件(这里是php_xdebug-2.3.3-5.5-vc11-x86_64.dll)放到 php 安装目录的 ext 文件夹下。本机放在 D:\ApacheServer\php\ext\

在ApacheServer下面新建xdebug文件夹,再在xdebug下面新建trace与profiler文件夹,用来存放xdebug生成的两种信息

编辑php.ini,加入下面几行

zend_extension = "D:\ApacheServer\php\ext\php_xdebug-2.3.3-5.5-vc11-x86_64.dll"

;允许远程IDE调试

xdebug.remote_enable = true

;远程主机

xdebug.remote_host = 127.0.0.1

;xdebug.remote_port = 9000 ;默认端口 9000

xdebug.profiler_enable = on

;临时跟踪信息输出

xdebug.trace_output_dir = "D:\ApacheServer\xdebug\trace"

xdebug.profiler_output_dir = "D:\ApacheServer\xdebug\profiler"

;其余参数

;开启自动跟踪。自动打开"监测函数调用过程"的功模。该功能可以在你指定的目录中将函数调用的监测信息以文件的形式输出

xdebug.auto_trace = On

;开启异常跟踪

xdebug.show_exception_trace = On

;开启远程调试自动启动

xdebug.remote_autostart = On

;收集变量

xdebug.collect_vars = On

;收集返回值

xdebug.collect_return = On

;收集参数

xdebug.collect_params = On

;显示局部变量

xdebug.show_local_vars = On

;显示默认的错误信息

xdebug.default_enable = On

;用于zend studio远程调试的应用层通信协议

xdebug.remote_handler = dbgp

;如果设得太小,函数中有递归调用自身次数太多时会报超过最大嵌套数错

xdebug.max_nesting_level = 10000

zend_extension = "D:\ApacheServer\php\ext\php_xdebug-2.3.3-5.5-vc11-x86_64.dll" 与 Zend Debugger 一样

不同系统及 PHP 版本有不同写法

Linux 和 Mac OS X : zend_extension = "D:\ApacheServer\php\ext\php_xdebug-2.3.3-5.5-vc11-x86_64.dll"

Windows Thread-Safe 版 PHP : zend_extension_ts = "D:\ApacheServer\php\ext\php_xdebug-2.3.3-5.5-vc11-x86_64.dll"

Windows Non-Thread-Safe 版 PHP : zend_extension = "D:\ApacheServer\php\ext\php_xdebug-2.3.3-5.5-vc11-x86_64.dll"

所以同一服务器只能加载一个调试工具,要么 Zend Debugger 要么 Xdebug

但在 PHP5.5 环境下测试, Thread-Safe 版 PHP 后面不能加 _ts 只能写成 zend_extension =

xdebug.profiler_enable = on 及后面的目录 "D:\ApacheServer\xdebug" 作用是开启把执行情况的分析文件写入到指定目录中的功能,可自由设置。也可不写

生成的文件,例如 cachegrind.out.4408 这种格式命名的文件,用编辑器打开可以看到很多程序运行的相关细节信息

重启Apache

重启

先写一个可以导致执行出错的程序,例如尝试包含一个不存在的文件。

<?phprequire 'abc.php';?>

然后通过浏览器访问,惊奇地发现,出错信息变成了彩色的了,并且Xdebug跟踪代码的执行

Zend Studio设置

Zend Studio 10.6.2

Apache2.4.4

修改 Zend Studio 设置

Window->Preferences->PHP->PHP Executables->Add

填写内容如下,Executable path选择文件后PHP ini file (optional)自动赋值

Name : PHP 5.5.1_CLI

Executable path : D:\ApacheServer\php\php.exe

PHP ini file (optional) : D:\ApacheServer\php\php.ini

SAPI Type : CLI

PHP debugger : XDebug

点击Finish保存后自动就是默认

(如果只需要CLI调试此步可忽略)点击PHP Server下拉框Default PHP Web Server右边的PHP Servers...

选中Name|URL列表中的一条内容,点击右边的Edit

在弹出框的Debugger下拉框中选择XDebug

开始调试

在代码中在左边行数栏上双击加断点

Run->Debug Configurations...

双击PHP CLI Application

在Name处输入想要的名称,在PHP File处右边点击Browse,选择要debug的文件,点击下面的Apply即可

或者打开要运行的页面

Run->Debug As->PHP CLI Application

即可以调试模式运行,也可选择CLI之外其他调试模式

点击工具栏向下箭头(Step Into)或按 F5 逐行执行。点击左边的绿色向右箭头(Resume)或按F8一直执行,直到断点处停下

点击红色按钮(Terminate)结束调试,再点击臭虫按钮重新开始调试