Pythonでは、traceモジュールを使用してコマンドラインスクリプトによって実行されるすべてのステートメントをトレースできます。 bashでは、set -x
と同じことができます。通常のbash/python/perl/etcスクリプトのように、コマンドラインから実行しているPHPスクリプトがあります。何もweb-yは進んでいません。PHP - PHPコマンドラインスクリプトで実行されるすべての文を出力しますか?
実行中のすべてのコード行をトレースする方法はありますか?
Pythonでは、traceモジュールを使用してコマンドラインスクリプトによって実行されるすべてのステートメントをトレースできます。 bashでは、set -x
と同じことができます。通常のbash/python/perl/etcスクリプトのように、コマンドラインから実行しているPHPスクリプトがあります。何もweb-yは進んでいません。PHP - PHPコマンドラインスクリプトで実行されるすべての文を出力しますか?
実行中のすべてのコード行をトレースする方法はありますか?
純粋なPHPではなく、いいえ、私の知る限りです。
しかし、デバッガを使用することができます。それを行うには良い方法は、これらのEclipse PDT
の両方があるように、debugger
のために働きます、それはあなたがあなたのスクリプトを実行しているマシンでEclipseを実行していることを意味します...しかし、あなたが開発マシンでそれを実行しているなら、あなたはおそらくGUIを持っているので、それは大丈夫でしょう...
Webアプリケーションの場合、PHP Webサーバーとは別のマシンでEclipseを実行することができますが、CLIで可能かどうかわかりません)
サイドノートとして:XdebugをCLIベースのデバッガと統合することができます。サポートされているツールのリストについては、先にリンクしたページを参照してください。
私はここで少し盲目ですが、あなたがそれを行うことができる方法の1つは、関連するコードをすべてカスタム関数内に記述してdebug_backtrace()と呼ぶことです。 debug_print_backtraceも有用かもしれない。
私はそれが役に立ちそうです。
はい、それは1つのオプションですが、私は何かよりも高いレベルを探していました。 – Rory
トレースファイルを生成するPECL拡張子apdがあります。
xdebugを使用する最良の方法の1つは、吐き出したトレースファイルを分析することでした。 diffを実行してperlなどで解析することができます.2つの同様のユースケースがあり、1つが動作し、もう1つが動作しない場合、diffはどこから分岐し始めるかを示すのに便利です。私は 'vimdiff(ユビキタス' vim'エディタの組み込みの動作モードです)が、この点で非常に能力があり、非常に大きなファイル(例えば、モジュールを含むDrupalインストール)を扱うことができたことがわかりました。 – intuited
また、xdebugを純粋なCLIモードで使用することも可能です。コマンドラインから呼び出されたPHPコードのトレースを行うように設定することができます。実際には、vimをデバッガとしてフックできます。 vimは呪いの中で走っているので、それは純粋なcliではないと思います。とにかくここにPHPデバッガとしてvimを使う方法があります:http://tech.blog.box.net/2007/06/20/how-to-debug-php-with-vim-and-xdebug-on-linux /#comment-39681 – intuited
エラーが発生しました.cliを使用したリモートデバッグについて話していました。私はこれをやろうとはしませんでしたが、遠隔からデバッグすることは可能だと思いますが、コマンドを実際に実行するにはsshを使わなければなりません。 – intuited