易客CRM,中小企业最忠实的合作伙伴!

介绍一个很好用的module – XDebug

827℃

无意间在一个台湾人的网站上找到一个非常有用的module,叫xdebug,可以用来打印出PHP中出错时的stacktrace。配上WinCacheGrind,还可以对PHP的执行进行性能测试。

我用的是easyPhp 1.8版本,对应的apache为1.3.33,php为4.3.10

1. 在http://pecl4win.php.net/index.php找到php-xdebug.dll,下载后将其放到php/extension目录下

2.修改php.ini,添加以下内容
extension=php_xdebug.dll

[Xdebug]
; zend_extension_ts=php_xdebug.dll (这一行不需要)
xdebug.profiler_enable=on
xdebug.trace_output_dir=”D:/Program Files/EasyPHP1-8/php/xdebug”
xdebug.profiler_output_dir=”D:/Program Files/EasyPHP1-8/php/xdebug”

xdebug.profiler_enable 是否将程序执行信息输出到文件
下面两个参数是指定输出文件所在路径

apache会自动加载php.ini变化,通过查看phpinfo,可以看到多了一个xdebug的module,此时xdebug这个模块就已经安装成功了,打开一个已经部署的web工程,会在…/PHP/xdebug目录下生成文件名为cachegrind.out.2123481891的文件,该文件记录了程序执行时用到了哪些文件,调用了哪些函数,函数执行的时间。 通过WinCacheGrind,可以在图形界面显示出cachegrind.out文件的内容,只需要在tool -> options里设置路径为…/php/xdebug就可以了。

当执行出错时,除了在页面上会显示原有的出错信息外,还会像java那样打出一个stacktrace,输出内容如下:
Notice: Undefined index: 已约定 in d:\program files\easyphp1-8\www\sugarcrm\include\generic\SugarWidgets\ SugarWidgetSubPanelActivitiesStatusField.php on line 62
Call Stack
Function Location
{main}() d:\program files\easyphp1-8\www\sugarcrm\index.php:0
include() d:\program files\easyphp1-8\www\sugarcrm\index.php:609
subpaneltiles->display() d:\program files\easyphp1-8\www\sugarcrm\modules\Accounts\DetailView.php:189
subpanel->display() d:\program files\easyphp1-8\www\sugarcrm\include\SubPanel\SubPanelTiles.php:142
subpanel->processsubpanellistview() d:\program files\easyphp1-8\www\sugarcrm\include\SubPanel\SubPanel.php:176
listview->process_dynamic_listview() d:\program files\easyphp1-8\www\sugarcrm\include\SubPanel\SubPanel.php:149
listview->process_dynamic_listview_rows() d:\program files\easyphp1-8\www\sugarcrm\include\ListView\ListView.php:159
layoutmanager->widgetdisplay() d:\program files\easyphp1-8\www\sugarcrm\include\ListView\ListView.php:345
sugarwidgetsubpanelactivitiesstatusfield->display() d:\program files\easyphp1-8\www\sugarcrm\include\generic\LayoutManager.php:223 sugarwidgetsubpanelactivitiesstatusfield->displaylist() d:\program files\easyphp1-8\www\sugarcrm\include\generic\SugarWidgets\SugarWidgetField.php:43

转载请注明:易客CRM官方博客 » 介绍一个很好用的module – XDebug

喜欢 (0)or分享 (0)