当前位置:编程学习 > php >>

zend studio 和 ZendDebugger 配合对php应用进行交互式调试的方法



问题
zend studio 和 ZendDebugger 配合对php应用进行交互式调试的方法
解决方法
介绍了 zend studio 和 ZendDebugger 配合对php应用进行交互式调试的方法。
内容见附件

[ ]
附件: 您所在的用户组无法下载或查看附件

参考答案
这是???
参考答案
Zend Debugger,xdebug等让我们可以对服务器上的文件进行调试,而不用到处print_r().

不安装Optimizer的安装Zend Debugger方式看下载的Zend Debugger的README.txt

1、下载Zend Debugger
到zend.com下载 ZendDebugger-5.2.12-cygwin_nt-i386.zip

2、解压
把ZendDebugger-5.2.12-cygwin_nt-i386.zip解压到 ${PHP_HOME}/zend/lib

4、修改 (这一步容易被忽略)
把${PHP_HOME}/zend/lib/ZendDebugger-5.2.12-cygwin_nt-i386中的4_3_x_comp、4_4_x_comp、5_2_x_comp
等目录分别改为 php-x.y.z(比如将目录 5_2_x_comp 改为 php-5.2.x),5_2_x_nts_comp目录不用管

5、配置
在php.ini中添加
[Zend Debugger]
zend_extension_manager.debug_server_ts = "D:ServerphpzendlibZendDebugger-5.2.12-cygwin_nt-i386" ; 依你的ZendDebugger所在目录而定
zend_debugger.expose_remotely = allowed_hosts ; always
zend_debugger.allow_hosts = localhost

6、把 ZendDebugger-5.2.12-cygwin_nt-i386 目录下的 dummy.php 复制到你的 Web 站点根目录。

7、重启Web Server, OK
参考答案
单步调试服务器上的文件
在ZDE的 工具》调试URL
弹出如图所示,输入url(URL前面要带http),并作如图所示配置,确定后ZDE就会打开要调试的页面,按F11就可以进行单步调试了

参考答案
Go on..现在我们来从最简单的程序调试开始一步步介绍Xdebug。

为什么需要Debugger?

很 多PHP程序员调试使用echo、print_r()、var_dump()、printf()等,其实对于有较丰富开发经验的程序员来说这些也已经足够 了,他们往往可以在程序执行的过程中,通过输出特定变量的值可以判断程序执行是否正确,甚至效率高低也可以看出来(当然可能还需要使用一些时间函数)。那么我们为什么还需要一个专门的调试程序来监控我们的程序运行呢? 这个问题的答案不妨留到后面来揭晓。

什么是Xdebug? Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。Xdebug现在的最新版本是[url=http://www.xdebug.org/link.php?url=xdebug200b6]链接标记xdebug2.0.0beta6[/url],支持PHP4/PHP5。官方站点:[url=http://www.Xdebug.org]链接标记www.Xdebug.org[/url]

如何安装Xdebug? 以PHP5.1.4,Windows平台为例(其它PHP版本,其它平台请参看官网文档):

1. 登录[url=http://www.xdebug.org/]链接标记www.xdebug.org[/url],在首页右侧有一个Windows modules,选择其中的PHP5.1.2+,下载php_xdebug-5.1.2-2.0.0beta6.dll文件;

2.将下载的php_xdebug-5.1.2-2.0.0beta6.dll放到C:php5ext目录,重命名为php_xdebug.dll;

3. 编辑php.ini,加入下面几行: extension=php_xdebug.dll[Xdebug] xdebug.profiler_enable=onxdebug.trace_output_dir="I:Projectsxdebug"xdebug.profiler_output_dir="I:Projectsxdebug" 后面的目录“I:Projectsxdebug”为你想要放置Xdebug输出的数据文件的目录,可自由设置。

4. 重启Apache;

5.写一个test.php,内容为,如果输出的内容中有看到xdebug,说明安装配置成功。



现在我们就可以开始使用Xdebug强大的功能了!




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






require_once(‘abc.php’);



?>





然后通过浏览器访问,我们惊奇地发现,出错信息变成了彩色的了:
[img]http://p.blog.csdn.net/images/p_blog_csdn_net/haohappy2004/218825/o_2.gif[/img]
不过除了样式改变,和我们平时打印的出错信息内容没什么不同,意义不大。好,我们继续改写程序:

testXdebug2.php


testXdebug();
function testXdebug() {

require_once('abc.php');
}
?>


输出信息:
[img]http://p.blog.csdn.net/images/p_blog_csdn_net/haohappy2004/218825/o_3.gif[/img]
发现了什么? Xdebug跟踪代码的执行,找到了出错的函数testXdebug()。

我们把代码再写得复杂一些: 


testXdebug3.php


testXdebug();
function testXdebug() {

requireFile();

}
function requireFile() {

require_once('abc.php');
}
?>

输出信息:
[img]http://p.blog.csdn.net/images/p_blog_csdn_net/haohappy2004/218825/o_4.gif[/img]
呵呵,也就是说Xdebug具有类似于Java的Exception的“跟踪回溯”的功能,可以根据程序的执行一步步跟踪到出错的具体位置,哪怕程序中的调用很复杂,我们也可以通过这个功能来理清代码关系,迅速定位,快速排错。

[ ]
参考答案
xdebug不错,可惜不能和zend debugger共存
参考答案
呵呵。

这个没细看。你可以google下
参考答案
呵呵,你并没有理会到xdebug的真正用处

至于你说的出错栈,,,不需要xdebug也可以看到

set_error_handler 让他调用:
debug_print_backtrace

即可.
参考答案
是吗?也不是经常用。到

补充:Php教程,常见问题 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,