関数のデバッグトレーサー - PHP_FunctionCallTracer
皆さんはPHP_FunctionCallTracerというPEARライブラリをご存知でしょうか?
私は先日1.0.0RC1のリリース情報を見て初めて知ったのですが、これは関数のデバッグトレースを行うためのライブラリで、トレース結果を表示したり、ファイルへ書き出したりすることができます。
まずは、PEARコマンドを使ってインストールします。この際、まだ正式リリースではありませんので、「-beta」を付けます。
※13日に1.0.0がリリースされましたので、「-beta」は付けなくても大丈夫です(2007年9月18日追記)
次に、下記の内容のexample.phpを作成します。
それでは、早速実行してみます。
関数の引数や戻り値、指定した変数などがスクリプト名やその行番号と共に表示されているのが見て取れます。それぞれ
・traceArguments() … [call],[in]
・traceVariables() … [watches]
・traceReturn() … [out]
といったように対応しているようです。
また、putTrace()は
のようにファイル名を指定することで、ファイルへ出力することもできます。
PHP_FunctionCallTracerは他のPHP用デバッガの置き換えを目指したものではないとのことで、高機能というわけではありませんが、リモートデバッグ時に複雑な関数呼び出しの動作をトレースする際は便利かも知れませんね。
私は先日1.0.0RC1のリリース情報を見て初めて知ったのですが、これは関数のデバッグトレースを行うためのライブラリで、トレース結果を表示したり、ファイルへ書き出したりすることができます。
まずは、PEARコマンドを使ってインストールします。この際、まだ正式リリースではありませんので、「-beta」を付けます。
※13日に1.0.0がリリースされましたので、「-beta」は付けなくても大丈夫です(2007年9月18日追記)
- #
pear install PHP_FunctionCallTracer-beta
次に、下記の内容のexample.phpを作成します。
- require_once
'PHP/FunctionCallTracer.php'; - function
example($before) - {
PHP_FunctionCallTracer::traceArguments(); $after = strtoupper($before); PHP_FunctionCallTracer::traceVariables($after); PHP_FunctionCallTracer::traceReturn($after); return $after; - }
- example('hoge');
- PHP_FunctionCallTracer::putTrace();
それでは、早速実行してみます。
- $
php example.php - Array
- (
[php_uname] => Linux localhost.localdomain 2.6.18-8.1.8.el5 #1 SMP Tue Jul 10 07:06:45 EDT 2007 x86_64 [date] => Wed, 12 Sep 2007 14:02:14 UTC [calls] => Array ( [0] => Array ( [call] => Array ( [file] => /path/to/example.php [line] => 15 [function] => example ) [in] => Array ( [file] => /path/to/example.php [line] => 6 [args] => Array ( [0] => hoge ) ) [watches] => Array ( [0] => Array ( [file] => /path/to/example.php [line] => 9 [args] => Array ( [0] => HOGE ) ) ) [out] => Array ( [file] => /path/to/example.php [line] => 11 [args] => Array ( [0] => HOGE ) ) ) ) - )
関数の引数や戻り値、指定した変数などがスクリプト名やその行番号と共に表示されているのが見て取れます。それぞれ
・traceArguments() … [call],[in]
・traceVariables() … [watches]
・traceReturn() … [out]
といったように対応しているようです。
また、putTrace()は
- PHP_FunctionCallTracer::putTrace("/path/to/filename");
のようにファイル名を指定することで、ファイルへ出力することもできます。
PHP_FunctionCallTracerは他のPHP用デバッガの置き換えを目指したものではないとのことで、高機能というわけではありませんが、リモートデバッグ時に複雑な関数呼び出しの動作をトレースする際は便利かも知れませんね。
トラックバックURI
最近の記事
システム開発エンジニア募集! [2012年02月03日 : 小林有佳]
OpenVPNで細々便利な設定 [2012年01月31日 : 門脇優児]
【iOS】Viewの開発・デバッグに役立つ色々 [2012年01月23日 : 中川善樹]
PHPDocumentorの利用方法まとめ [2012年01月19日 : 笹亀弘]
Google Chart Toolsを使ってサイトマップを描こう! [2011年12月21日 : 志田仁美]
stumpwm設定v2 [2011年12月19日 : 門脇優児]
Mashup Awards 7の授賞式が行われました [2011年12月16日 : 中川善樹]
社員旅行に行きました [2011年12月12日 : 大橋寛子]
iCloud風のアイコンを作成する(Fireworks) [2011年12月07日 : 和田記光]
iScroll4でネイティブに近いスマホ向けHTMLページを作成する [2011年12月02日 : 松田惇]













最近のコメント