快速业务通道

用Xdebug修正PHP应用程序中的错误

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

清单 9. 整个跟踪

TRACE START [2007-06-06 14:04:55]
    0.0003       9440    +9440   -> {main}() /var/www/catalog/t/info.php:0
    0.0005       9440       +0     -> phpinfo() /var/www/catalog/t/info.php:1
                                   >=-> TRUE
                                 >=-> 1
    0.2351       9208
TRACE END   [2007-06-06 14:04:55]

在这里,main() 将调用 phpinfo(),后者将返回 TRUE。当 main() 退出时,它将返回 1。接下来, 将浏览器指向 “最复杂的内容” 或系统中的其他某个 PHP 应用程序以生成更详细的跟踪。

清单 10 显示了在计算第四个斐波纳契数列时上一篇文章中的 PHP Fibonacci 生成器的跟踪:

清单 10. PHP Fibonacci 生成器跟踪

TRACE START [2007-06-06 14:17:17]
    0.0004      16432   +16432   -> {main}() /var/www/catalog/t/fibonacci.php:0
    0.0006      16696     +264     -> fib(''4'') /var/www/catalog/t/fibonacci.php:35
    0.0007      16696       +0       -> fib(3) /var/www/catalog/t/fibonacci.php:7
    0.0007      16736      +40         -> fib(2) /var/www/catalog/t/fibonacci.php:7
    0.0007      16848     +112           -> fib(1) /var/www/catalog/t/fibonacci.php:7
                                         >=> 1
    0.0008      16904      +56           -> fib(0) /var/www/catalog/t/fibonacci.php:7
                                         >=> 0
                                       >=> 1
    0.0009      16904       +0         -> fib(1) /var/www/catalog/t/fibonacci.php:7
                                       >=> 1
                                     >=> 2
    0.0009      16904       +0       -> fib(2) /var/www/catalog/t/fibonacci.php:7
    0.0009      16904       +0         -> fib(1) /var/www/catalog/t/fibonacci.php:7
                                       >=> 1
    0.0010      16904       +0         -> fib(0) /var/www/catalog/t/fibonacci.php:7
                                       >=> 0
                                     >=> 1
                                   >=> 3
                                 >=> 1
    0.0011      12528
TRACE END   [2007-06-06 14:17:17]

第一列显示时间,第二列是累计的内存使用量,第三列是增加的内存使用量,而第四列显示函数调用 ,包括参数。

标有 >=> 的行显示每个函数的返回值(查找相应的缩进 -> 将调用与其返回值匹配起来) 。此外,最后的 >=> 1 是 main() 的返回值。

如果使用 vim,Xdebug 的创造者 Derick Rethans 提供了专门针对 Xdebug 跟踪的一组语 法加亮提示。提示包含在 Xdebug 源代码包内的 xt.vim 文件中。对于最近的 Linux 发行版,只需将 xt.vim 复制到 $VIMRUNTIME/syntax/xt.vim 中,然后运行 vim tracefile.xt。图 4 显示了 vim 中加亮的 Fibonacci 跟踪。

图 4. Xdebug 跟踪的 vim 语法文件将使您可以轻松地进行分析

vim 中加亮的跟踪

结束语

跟踪 PHP 代码中的错误可能是一项挑战。但是如果您有开发系统并且可以安装 Xdebug,那么更正这 些错误就会变得轻松得多。Xdebug 可以显示堆栈跟踪,转储甚为复杂的变量,随时间跟踪内存使用量, 并允许您在出错或崩溃时(不是如果,而是发生时)进行有效的事后分析。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号