最近评论

iis7错误跟踪

 
web server events:Application pool ‘DefaultAppPool’ is being automatically disabled due to a series of failures in the process(es) serving that application pool.
windows logs-application:The Module DLL C:\Windows\System32\inetsrv\validcfg.dll failed to load.  The data is the error
http://mvolo.com/blogs/serverside/archive/2006/10/19/Where-did-my-IIS7-server-go_3F00_-Troubleshooting-_2200_service-unavailable_2200_-errors.aspx

xdebug调试PHP程序

为什么需要Debugger?
很多PHP程序员调试使用echo、print_r()、var_dump()、printf()等,其实对于有较丰富开发经验的程序员来说这些也已经足够了,他们往往可以在程序执行的过程中,通过输出特定变量的值可以判断程序执行是否正确,甚至效率高低也可以看出来(当然可能还需要使用一些时间函数)。那么我们为什么还需要一个专门的调试程序来监控我们的程序运行呢? 这个问题的答案不妨留到后面来揭晓。
什么是Xdebug?
Xdebug是一个开放源代码的PHP程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。Xdebug现在的最新版本是xdebug 2.0.0beta6,支持PHP4/PHP5。
官方站点:www.Xdebug.org

如何安装Xdebug?
以PHP5.1.4,Windows平台为例(其它PHP版本,其它平台请参看官网文档):
1. 登录www.xdebug.org,在首页右侧有一个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:\php5\ext目录,重命名为php_xdebug.dll;
3. 编辑php.ini,加入下面几行:
extension=php_xdebug.dll
[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir=”I:\Projects\xdebug”
xdebug.profiler_output_dir=”I:\Projects\xdebug”
后面的目录“I:\Projects\xdebug”为你想要放置Xdebug输出的数据文件的目录,可自由设置。
4. 重启Apache;
5. 写一个test.php,内容为<?php phpinfo(); ?>,如果输出的内容中有看到xdebug,说明安装配置成功。

现在我们就可以开始使用Xdebug强大的功能了!
使用Xdebug调试和优化PHP程序[2]
作者:Haohappy
MSN: haohappy at msn.com
Blog: http://blog.csdn.net/haohappy2004
2006-07-04
Go on..现在我们来从最简单的程序调试开始一步步介绍Xdebug。
调试:
我们先写一个可以导致执行出错的程序,例如尝试包含一个不存在的文件。
testXdebug.php

<?php
require_once(‘abc.php’);
?>

然后通过浏览器访问,我们惊奇地发现,出错信息变成了彩色的了:

不过除了样式改变,和我们平时打印的出错信息内容没什么不同,意义不大。好,我们继续改写程序:

testXdebug2.php

<?php
testXdebug();
function testXdebug() {
require_once(‘abc.php’);
}
?>

输出信息:

发现了什么? Xdebug跟踪代码的执行,找到了出错的函数testXdebug()。

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

testXdebug3.php

<?php
testXdebug();
function testXdebug() { [...]

php调试思想与方法

update0815: 调整部分内容的顺序 罗嗦的放在后面
update0521: 增加OO思路
update0417: 稍微修正了一些观点, 增加一些内容, 不过内容仍然比较乱
最简单的谁都会的调试(是么?):
本来安装php是没问题 也能用了 但是又从书上抄了一些代码来发现不能用, 那就用眼睛仔细的对着书本纠正一下代码哈 肯定是你抄错了 要么是印刷错了
比如 1(yi)跟l(el) 0(ling)跟O(大写o)等
别笑哈 真的有人抄错过 还让我过去帮忙调试 过去我录入进去(他的没保存) 就全对了
言归正传
Q: “为什么要调试?”
A: 当然是因为程序错啦. 你以为我有什么别的答案?
Q: “可是我觉得我的程序应该没错啊!”
A: 不能出来期望的结果 当然是错误发生. 有这种思想的人是根本不具备调试观念 更没有调试能力.
Q: 那调试有什么用?
A: 不管是你配置的php出错 还是你的程序写错 还是你写的正确的程序跟别人配置的php(比如免费空间)犯冲, 学会调试都能找出原因来
Q: 逻辑乱了能调试好么?
A: 或许你偶尔改来改去改好了 以为是调试好了 其实那已经不是单纯的调试, 而是反复的用程序代码进行思考, 并且反复的改代码来”实践”某个idea是否可行.
可以说是”调试逻辑”而非”调试代码”:
逻辑没代码或者乱代码–调试/修改逻辑–>正确的逻辑->体现在代码上,出来正确的代码.
单纯的调试代码是:
正确的逻辑–编码–>出错的代码–调试–>正确的代码
所以调试可以分为:
1.调试逻辑, 2.调试代码, 3.调试界面. 4. etc..
错误的逻辑是不可能出来正确的程序. 写程序首先得把逻辑(流程)弄清楚, 然后才开始编码.
合并在一起就是:
含糊的逻辑–调试逻辑–>正确的逻辑–编码–>出错的代码–调试代码–>正确的代阿马
其中调试逻辑你可以利用”修改代码”来辅助 免得脑子太累, 但是脑子必须动, 不能不思考乱改来改去, 而且不能跟 “调试代码” 混在一起.
改小错误 常常混在一起 就解决了, 但是要养成分开的习惯, 对于大错误才能一样轻松解决.
别慌
很初学者 [...]