当我们还在使用print_r、var_dump、echo和exit这些命令进行一些中间参数的调试输出,并且乐此不疲的时候,或许我们不知道,我们的效率有多么低下,开发中有带来了多大的不便,尽管很多优秀的系统在开发中特意设置了debug mode或专门的debug function,但这些并没有实质性的改善我们开发中调试工作的纷繁芜杂,尽管我们可以很负责任的说:一个优秀的系统需要长期的测试、调试来改善其性能,优化其算法,但也许(我是说也许)我们花费的时间和所付出的劳动成倍却并没有取得多少的成效,当然我不是赞成在工作中的投机取巧,我是反对在工作中浪费时间,我们诸多的同仁们成天的“徜徉”在代码的海洋里,废寝忘食,认真的甚至有些不可理喻,我不知道这样做的效率到底是多少?以上说的都是一些废话,大家也可以略过,只是根据最近的心情有感而发,当然,我知道在教程里面写心情或多或少有些欠妥,但那样是否让本已索然无味的技术说教文章更加的显得没有生气呢?呵呵,废话止于此。

Zend Studio的远程调试功能是我们日常开发工作中一项颇为重要的功能,本文服务器端采用轻量级的zend debugger,在上一篇的文章《服务器调试——Zend Debugger 的安装教程》,我们已经详细讨论了它的安装。

我们先来看一个简单的例子:
[codes=php]
=0;
do{
  echo ++;
}
while(<0);
=0;
while(<0){
  echo ++;
}
?>
[/codes]
当我们非常觉得书上的说辞过于抽象我晦涩的时候,我们怎么才能比较直观的知道这两段代码的执行流程是怎样的呢?下面我们来试试zend studio(下简称zde)吧。
我先将上述代码用zde保存于本机的https://localhost:8080/myphppro/debug.php位置,在zde中,选择调试菜单或工具菜单下的【调试URL…】命令,当然更方便也是本人最为推崇的方法是按F8(请参考《Zend Studio 实用快捷键一览表》),打开如图1的调试URL对话框,


图1

在浏览器打开位置中填写https://localhost:8080/myphppro/debug.php,点击确定,就启动了调试会话,如图2


图2

我们看到,变量窗口中除了几个超全局变量以外,无他。这时我们按F10一次,光标就停留在了第4行(这就印证了书上说的do{}while型循环为“后判断型循环”的说法),并且变量窗口出现了=(int)0,类型和值同时列出,相当详细,如图3所示


图3

这里甚至可以对
当然除了F10逐过程(所谓“逐过程”即遇到自定义函数、类或include包含文件时,直接步过执行到下一行)的调试执行,还有Ctrl+F5的无中断执行(遇到断点不中断),F5执行(遇断点即中断),F11逐语句执行,Shift+F10转到光标处(让程序执行到光标处中断),等等一些调试执行方式,可以根据实际情况选择。

这里补充讲一下变量赋值的问题,当我们要改变程序执行过程中的中间值的时候,可以使用赋值命令(见图3),赋值的时候要注意类型,当我们需要将123作为字符串复制给一个变量时,需要给它加上引号,如'123',数组赋值可以使用array()函数,另外,还有其他有趣的方法,等待您的摸索了。

这里介绍了Zend Studio的单文件远程调试方法,是远程调试的入门基础,文中错误难免,如果您发现了错误,希望能及时与我联系。后面我还会努力继续写些使用zend studio内置浏览器来调试的整个项目的文字,希望能对大家有所帮助。

查看更多zend studio系列教程

最后编辑时间2008-10-28 0:07:31

抱歉,评论被关闭