快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
存分配,并提 供其他功能。Xdebug 还包括一组函数,您可以将这组函数添加到代码中以进行运行时错误诊断。

例如,下面的代码将使用一些 xdebug_...() 步骤测试 callee() 函数,以便输出调用程序的具体位 置,包括文件名、行号和调用函数的名称。

清单 1. 测试 callee() 函数的步骤

<?php
  function callee( $a ) {
    echo sprintf("callee() called @ %s: %s from %s",
      xdebug_call_file(),
      xdebug_call_line(),
       xdebug_call_function()
    );
  }
  $result = callee( "arg" );
?>

这段代码将生成:

callee() called @ /var/www/catalog/xd.php: 10 from 

{main}

构建和安装 Xdebug

Xdebug 可以很轻松地从 UNIX® 类操作系 统(包括 Mac OS X)中的源代码构建。如果是在 Microsoft® Windows® 上使用 PHP,则可以从 Xdebug Web 站点下载最新 PHP 版本的二进制 Xdebug 模块。

让我们来构建和安装适用于 Debian “Sarge” Linux® 和 PHP V4.3.10-19 的 Xdebug。在撰写本文时,Xdebug 的最 新版本是 V2.0.0RC4,发布于 2007 年 5 月 17 日。要继续本文,必须拥有 phpize 和 php-config 实 用程序,并且必须能够编辑系统的 php.ini 配置文件(如果没有实用程序,请访问 PHP.net 以获得如何 从头构建 PHP 的源代码和说明)。请执行以下步骤:

下载 Xdebug tarball(一个用 gzip 压缩的 .tar 归档文件)。wget 命令可以帮助您轻松地完成此操作:

$
wget http://www.xdebug.org/files/xdebug-2.0.0RC4.tgz

解压缩该 tarball 并切换到源 代码目录:

$ tar xzf xdebug-2.0.0RC4.tgz
$ cd xdebug-2.0.0RC4

运行 phpize 以准备适用于您的 PHP 版本的 Xdebug 代码:

$ phpize
Configuring for:
PHP Api Version:     20020918
Zend Module Api No:   20020429
Zend Extension Api No:  20021010

phpize 的输出是一个脚本 —— 通常名为配置 —— 用于调整其余的构建过程。

运行配置脚本:

$ ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc -linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
...
checking whether stripping libraries is possible... yes
appending configuration tag "F77" to libtool
configure: creating ./config.status
config.status: creating config.h

通过运行 make 构建 Xdebug 扩展:

$ make
/bin/sh /home/strike/tmp/xdebug-2.0.0RC4/libtool
-- mode=compile gcc -I.
-I/home/strike/tmp/xdebug-2.0.0RC4 -DPHP_ATOM_INC
- I/home/strike/tmp/xdebug-2.0.0RC4/include
-I/home/strike/tmp/xdebug-2.0.0RC4/main
-I/home/strike/tmp/xdebug-2.0.0RC4
-I/usr/include/php4 -I/usr/include/php4/main
-I/usr/include/php4/Zend -I/usr/include/php4/TSRM
-DHAVE_CONFIG_H -g -O0 -c
/home/strike/tmp/xdebug-2.0.0RC4/xdebug.c -o
xdebug.lo mkdir .libs
...
Build complete.
(It is safe to ignore warnings about tempnam and tmpnam).

使用 make 将生成 Xdebug 扩展 xdebug.so。

安装该扩展:

$ sudo make install
Installing shared extensions:   /usr/lib/php4/20020429/

继续之前,使用鼠标选择并复制上一条命令显示的目录。该 路径对于最后一步配置扩展至关重

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号