[PHPウォッチ]第11回 PHP4/PHP5にバグ修正版,高機能デバッグ・ツールXdebug登場
PHP用高機能デバッガ/プロファイラXdebugアプリケーションの開発で最も時間を要する部分の一つは,デバッグとパフォーマンスのチューニングである。Xdebug(http://www.xdebug.org/)は,変数やスタックを追跡するデバッガとしての機能と,実行時間分析などによりコードのボトルネックを追跡するプロファイラとしての機能をあわせ持つ高機能な拡張モジュールである。 なお,PHP用のデバッグ環境としては,この他にもPECLに含まれるapdや,dbg(http://dd.cron.ru/dbg/),Zend Studio(http://www.zend.com/store/products/zend-studio.php)などがある。 Xdebugの最新版としては,9月15日にPHP 5に対応するXdebug 2.0のβ1版がリリースされている。ここでは,このバージョンにおける主な機能を紹介する。 なお,ここでは例として以下のような簡単なスクリプトを使用する。
function a() { インストールを行う際には,まず,Xdebug のWebサイトからソースコードを入手し,コンパイルする。Linux上ではコマンドプロンプトで以下のコマンドを実行することでコンパイル・インストールが可能である。
phpize
Window環境の場合は,上記サイトからコンパイル済みの実行モジュールを入手するとよいだろう。
zend_extension_ts=C:\php5\ext\php_xdebug.dll Xdebugでは,リモートおよびローカルな環境でデバッグが可能であり,デバッガ・クライアントとのインタフェースとしてPHP3組込みデバッガ互換,gdb互換,DBGpの3種類をサポートする。このうち,DBGpは,特定の言語に依存しないデバッガ用の高機能なインタフェースとしてActiveStateと共に策定された規格(http://www.xdebug.org/docs-dbgp.php)であり,Xdebug 2.0以降でサポートされている。 上記の設定を行った後,デバッガを起動,スクリプトを実行すると,ソースコードレベルのデバッグが可能となる。Xdebugにはデバッガのクライアントとしてdebugclientが付属しているが,コマンドを手で打ち込む必要があり,あまり使いやすいものではない。
Komodo上で上記のスクリプトを実行した結果を写真2[拡大表示]に示す。このインタフェースでは,ブレークポイントの設定や値の表示などが可能である。 XDebugは,プロファイラとしての機能も有している。プロファイラを使用するには,以下の設定をphp.iniに記述する。
xdebug.profiler_enable = 1
関数のコール回数,依存関係,実行時間などがグラフィカルに表示され,チューニングが必要なカ所を容易に知ることができる。 Xdebugはこの他にも以下に示す機能をサポートしている。
Xdebugを使いこなすには多少の慣れが必要であるが,デバッグやパフォーマンスチューニングを効率的に行うために,極めて強力なツールと言えるだろう。 今回は,PHP開発関連の話題としてPHP 5.0.2/4.3.9における変更点について紹介し,PEAR/PECL関連の話題としてTextWiki,開発環境に関する話題としてXdebugについて紹介した。次回以降もPHPに関する最新の情報をお届けする予定である。
廣川類(Rui Hirokawa)
■著者紹介 廣川類(ひろかわ・るい)氏 PHPがまだPHP/FIと呼ばれていた1996年にPHPに出会い,以降,ドキュメント翻訳や国際化にかかわっている。著書に『PHP4徹底攻略』(ソフトバンクパブリッシング),『PHP4徹底攻略実戦編』(ソフトバンクパブリッシング)などがある。日本PHPユーザー会(2000年4月設立)ドキュメント部門幹事。 |