[PHP-users 4652] Re: PHP スクリプトのデバッグ用 PHP-Extension を公開しました。
Youichi Iwakiri
php-users@php.gr.jp
Fri, 11 Jan 2002 06:30:16 +0900
いわきりです
kuni wrote in <001c01c199fa$48189990$ddc38fd2@pm9bmg4yk43ajo>:
>APDを試用してみましたが、Dynamic Script Tracer(以下DYN)とAPDの相違点は
>下記のようなものになると思います。
>
>■スクリプトのデバッグを目的とする機能
>(2) 実行ステップトレース機能
> APD: 関数呼び出しのトレースが取得できる。
> 全ての関数(ZENDで提供する関数とスクリプト中で定義した
> ユーザ定義関数) の呼び出しが出力される。
> 実行ステップのトレース機能はない(?)
たしかに、fcall_begin_handler, fcall_end_handlerしか使ってないので
実行ステップのトレース機能は無いですね。
> DYN: スクリプト中で定義したユーザ定義関数のトレースと実行ステップの
> トレースが取得できる。リターンの個所も正確に知ることができる。
statement_handlerを使ってトレースしているようですね。
実行ステップのトレースは欲しいです。
出来れば最終的な出力が
* <?php
* if (isset($id)) {
echo $id;
} else {
* echo 'undefined $id';
}
* ?>
といった具合にソースと通過したステップとそうでない箇所を
特定できると嬉しいです。
以前作ろうとしたんですが断念しました :-<
<?php if (isset($id)) {echo $id;} else {echo 'undefined $id';} ?>
こんなコード書かれた場合の処理が面倒だったので
#私の書いた長めのスクリプトには絶対に通過しないコードが含まれている
#自信があります。無駄なコードは省きたいですよね。
>私の感想ですが、
>・APDは使用メモリの測定と関数トラップ機能に魅力を感じます。
>・DYNは、関数間のパラメータの受け渡しを表示すること、
> 全ての実行ステップを知るできることから、 基本的なデバッグを行う
> 場合に有効ではないかと思います。
<?php if (isset($id)) {echo $id;} else {echo 'undefined $id';} ?>
なコードだとやっぱり1ステップ扱いでしょうか?
興味があって試用したいと思いましたが、
OS指定でバイナリ配布ですか。
私の環境はFreeBSD 3.4-RELEASEなのでそれようのバイナリも置いて
欲しいです。
#どっちかというとAPDにマージして貰ったほうがうれしい :-)