debugConsole 1.0.1

debugConsole

JavaScript によるポップアップウィンドウを利用して PHP アプリケーションのデバッグを行うことができる debugConsole 1.0.1 がリリースされました。PHP 5.0.0 以降に対応しており、以下のような機能がポップアップウィンドウ経由で提供されます。

  • 変数の変更の監視
  • 変数のダンプ
  • PHP が出力するエラーメッセージの表示
  • スクリプトの実行時刻および所要時間の表示
  • 任意の範囲の所要時間計測
  • コンソール出力のログファイルへの保存

ただし、監視する変数や時間計測用タイマーの仕込みなどはコードレベルであらかじめ関数呼び出しを記述しておく必要があるため、いわゆるデバッガとはちょっと勝手が違います。

また、ポップアップウィンドウは特定の IP アドレスからアクセスした場合にのみ表示させることができるため、この機能自体は仕込んだままアプリケーションの運用ができます。と言っても監視対象コードを declare 命令で囲む必要があるので、開発時のみ利用するというのがスマートな気はします。

挙動不審な所もありますが、Xdebug と Zend Studio でリモートデバッグは敷居が高くて…、というような方にはお手軽だし便利かもしれません。

なお、手元の PHP 5.0.5 では debugConsole.class.php で $callStack[2] を参照している箇所で「無効なインデックスを参照しとるで」とエラーが出るので、以下のように書き換えました。

--- debugConsole.class.php.orig 2005-11-11 13:58:29.000000000 +0900
+++ debugConsole.class.php      2005-11-11 13:56:53.000000000 +0900
@@ -395,11 +395,11 @@
         */
        public function getTraceback () {
                $callStack = debug_backtrace();
-               $file = $this->cropScriptPath($callStack[2]['file']);
+               $file = $this->cropScriptPath($callStack[1]['file']);

                $traceback = '<span class="backtrace">';
                $traceback .= $file . ' on line ';
-               $traceback .= $callStack[2]['line'] . '</span>';
+               $traceback .= $callStack[1]['line'] . '';

                return $traceback;
        }