【php】phpdbgを使用してphpプログラムをデバッグします、phpdbgはphpプログラムをデバッグします
PHPDBGは、コードを変更せず、パフォーマンスに影響を与えることなく、PHP実行環境を制御できるPHP SAPIモジュールです
PHP5.4以降で利用可能です。 PHP5.6 以降で内部的に統合される予定です
特徴
- シングルステップデバッグ
- 柔軟なブレークポイントメソッド (クラスメソッド、関数、ファイル: 行、メモリアドレス、オペコード)
- PHPのevalを直接呼び出すことができます
- 現在実行されているコードを表示できます
- ユーザー空間API(ユーザーランド/ユーザー空間)
- 統合が簡単
- PHP設定ファイルの指定をサポート
- JIT グローバル変数
- readlineサポート(オプション)、端末操作がより便利になります
- Java GUIを使用したリモートデバッグ
- 操作は簡単(詳細はヘルプを参照)
インストール
56ペソの場合
リーリー
PHP56 の場合は、phpdbg を有効にするだけです
注: phpdbg の --with-readline は、履歴、オートコンプリート、タブリストなどをサポートするために PHP 設定で有効にすることができます
バージョン番号を表示
リーリー
ヘルプを見る
リーリー
これらのヘルプドキュメントで十分です
なぜサンプルコードtestbとtestaの出力はこのようになるのでしょうか?
リーリー
デバッグを開始
リーリー
現在のクラスのオペコードを表示する
リーリー
ブレークポイントを追加してデバッグを開始する
リーリー
コードを実行して表示する
リーリー
実行を継続する
gdbと同様、phpdbgの実行継続コマンドもContinue、略称はc
ブレークポイントを表示する
リーリー
評価操作
任意のPHPコードを実行可能
上記の例で testa と testb の違いがわかります
リーリー
違いは、ZEND_PRE_INC のオペコードが ++$a であることです
。
testbに参照が存在する場合、$aは最初に2回インクリメントされてから追加されるため、結果は6になります。これはPHP自体の問題のはずです
このツールは vld よりもはるかに豊富で、PHP はますます強力になります
参考記事
https://github.com/krakjoe/phpdbg
http://www.bkjia.com/PHPjc/1078396.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1078396.html技術記事 [php] phpdbg を使用して PHP プログラムをデバッグします。 phpdbg は、コードを変更せず、パフォーマンスに影響を与えることなく、PHP 実行環境を制御できる PHP SAPI モジュールです。