プロが教える店舗&オフィスのセキュリティ対策術

例えば下記のようなコードで、この(↓)エラーが出たとします。
Warning: somefunc1(): The argument should be an array in /path/to/test.php on line 5

このエラーが、
A) 18行目→test_func1()→somefunc1() の経路で発生したエラーなのか、
B) 19行目→test_func2()→test_func1($arg1)→somefunc1() の経路なのか、
C) 19行目→test_func2()→test_func1($arg2)→somefunc1() の経路なのか、
それを効率よく判断する方法はありませんか?

この位簡単なコードではデバッグも簡単なんですが、大規模なアプリケーションになってくると、どの時点で起きたエラーなのか(どの手順で呼び出された時なのか、ループの何回目なのか等)の判断ができなくなってきてしまいます。

==== test.php ====
01: <?php
02:
03: function test_func1($arg)
04: {
05:   somefunc1($arg); // PHP組み込み関数
06: }
07:
08: function test_func2($arg)
09: {
10:   $arg1 = somefunc2($arg); // PHP組み込み関数
11:   $arg2 = somefunc3($arg); // PHP組み込み関数
12:   test_func1($arg1);
13:   test_func1($arg2);
14: }
15:
16: $val = /* ...処理... */ ;
17:
18: test_func1($val);
19: test_func2($val);
20:
21: ?>

よろしくお願いいたします。

A 回答 (1件)

xdebugを使うのはどうでしょ。

これを使うとエラーやノーティスが拡張され、スタックトレース(関数やクラスメソッドの呼び出し階層)や変数の値を表示させる事ができるようになる。

詳しくは「xdebug PHP」で検索の事。
    • good
    • 0
この回答へのお礼

xdebugを使って見ました。すばらしいです!
どうもありがとうございました!!

お礼日時:2006/09/27 12:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!