ホームページ >バックエンド開発 >PHPチュートリアル >PHPDBG、PHP デバッグ用の強力なツール、phpdbg_PHP チュートリアル

PHPDBG、PHP デバッグ用の強力なツール、phpdbg_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 08:58:421912ブラウズ

PHPDBG、PHP デバッグ用の強力なツール、デバッグ ツール phpdbg

PHPDBG は、コードを変更せず、パフォーマンスに影響を与えることなく、PHP 実行環境を制御できる PHP SAPI モジュールです。

PHPDBG は、軽量で強力で使いやすい PHP デバッグ プラットフォームになることを目指しています。 PHP5.4以降で利用可能です。 php5.6 以降のバージョンでは内部的に統合されます。

主な機能:

– シングルステップデバッグ

– 柔軟なブレークポイント メソッド (クラス メソッド、関数、ファイル: 行、メモリ アドレス、オペコード)

–php の eval を直接呼び出すことができます

– 現在実行されているコードを表示できます

– ユーザー空間 API (ユーザーランド/ユーザー空間)

– 統合が簡単

– PHP 構成ファイルの指定をサポートします

–JIT グローバル変数

– readline サポート (オプション)、ターミナル操作がより便利になります

– Java GUI を使用したリモート デバッグ

– 操作が簡単 (詳細はヘルプを参照)

インストール
phpdgb を使用するには、まず php ソース コード パッケージをダウンロードする必要があります。次に、phpdgb のソース コード パッケージをダウンロードし、php ソース コード パッケージの sapi ディレクトリに配置します。最後に、インストール コマンドを実行できます。コンパイルとインストールの例は次のとおりです:

php のソース コード パッケージをダウンロードし、/home/php ディレクトリに配置したとします。

リーリー

注意:

1. php バージョンが php5.6 以降の場合、phpdbg は php コード パッケージに統合されているため、個別にダウンロードする必要はありません。

2. コンパイルパラメータに –enable-phpdbg を忘れずに追加してください。

3. コンパイル時パラメータ –with-readline はオプションで追加できます。追加しないとphpdbgの履歴やその他の機能が使用できなくなります。

基本的な使い方
1.パラメータの紹介
phpdbg は、コマンドラインから php をデバッグできる php の sapi です。一般的に使用されるパラメータは次のとおりです:

次のスイッチが実装されています(cli SAPIと同様):

-n php ini を無視します

-c パスで php ini を検索

-z ロード Zend 拡張機能

-d php ini エントリを定義します

次のスイッチは phpdbg のデフォルトの動作を変更します:

-v は静音性を無効にします

-s 有効ステッピング

-e は実行コンテキストを設定します

-b boring – コンソールでの色の使用を無効にします

- .phpdbginit (デフォルトの init ファイル) を無視します

-i .phpgdbinit の場所をオーバーライドします (-I を暗黙的に示します)

-O oplog出力ファイルを設定します

-q 起動時にバナーを印刷しません

-r 真っすぐにジャンプして走ります

-E eval() によるステップスルーを有効にする

注: -rr を渡すと、phpdbg は実行後にコンソールに戻らずに終了します

2. 共通機能
以前に gdb ツールを紹介しました。実際、phpdbg と gdb の機能はいくつかの点で非常に似ています。たとえば、ブレークポイントを設定したり、ステップスルーしたりできます。 Gdb は C または C++ 言語のデバッグに重点を置いているのに対し、phpdbg は PHP 言語のデバッグに重点を置いているというだけです。以下に、phpdbg の一般的なデバッグ機能をいくつか紹介します。デバッグするコードは次のとおりです:

ファイルtest_phpdbg_inc.phpのソースコードは次のとおりです:

リーリー

ファイルtest_phpdgb.phpのソースコードは次のとおりです:

リーリー

3.phpdbgを起動します

phpdbg が正常にインストールされると、インストール ディレクトリの bin ディレクトリに配置されます。 bin ディレクトリに入り、phpdbg を直接入力します。以下の通り:

リーリー

デバッグするPHPスクリプトをロードするには、execコマンドを実行するだけです。以下の通り:

リーリー

もちろん、phpdbgの起動時にeパラメータを指定することもできます。以下の通り:

リーリー

4. ヘルプ情報を表示する

これまでに他のデバッグ ツールを使用したことがある場合は、phpdbg がそれらに似ていることがわかるでしょう。ただし、使用の初期段階では、ヘルプ情報を取得する必要があることがよくあります。 help コマンドを通じてヘルプ情報を取得できます。

リーリー

5. ブレークポイントを設定する

ブレークポイントを設定するコマンドはgdbと同じです。それらはすべてbreakであり、略称はbです。ただし、特定のコマンド パラメータは依然として異なります。 gdb のブレークポイント コマンドと同様に、「ファイル名: 行番号」または行番号でブレークポイントを設定できます。さらに、phpdbg には、PHP に固有のブレークポイントを設定するためのメソッドもいくつか提供されています。たとえば、opline に基づいてブレークポイントを設定したり、opcode に基づいてブレークポイントを設定したりします。

ご存知のとおり、PHP コードは最終的にオペコードに解析され、PHP カーネルによって 1 つずつ実行されます。 PHP ステートメントは複数のオペコードに解析される場合があります。オペコードによってブレークポイントを設定できれば、プログラムの実行プロセスをより正確に追跡できます。 phapdbg を使用してブレークポイントを設定する具体的な例を見てみましょう。

opline でブレークポイントを設定します:

ここで言う opline は、メソッドの入り口から始まる現在のコードの行番号です。たとえば、test_phpdgb.php ファイルでは、18 行目のコード「$param = $param + "baba";」の opline は 2 です。

リーリー

6. ブレークポイントを表示する

gdb と同様に、phpdbg もブレークポイントを表示するために info Break コマンドを使用します。例は次のとおりです:

リーリー

上記の表示から、次のことがわかります。インフォブレークの表示結果にはブレークポイントの種類も表示されます。 # の後の数字はブレークポイント番号です。ブレークポイント番号に基づいてブレークポイントを削除できます。

7. ブレークポイントを削除します

和gdb命令不一样。phpdbg的删除断点不是delete命令,而是break del 命令。示例如下:

......
prompt> break del 1
[Deleted breakpoint #1]
prompt>
......

break del 后面的数字1就是断点号。

8、查看代码

phpdbg查看代码的命令也是list。但是和gdb相比,使用的方式更多样一些。

显示指定函数的代码:

......
prompt> l f func
 00017:   $param = "ali";
 00018:   $param = $param + "baba";
 00019:   echo "function func $param\n";;
 00020: }
 00021:
prompt>
......

单步执行

phpdbg的单步执行只有一个命令 step。和gdb的step命令差不多。都是一行一行的执行代码。注意,phpdbg是没有next命令的。

....
prompt> s
[Breakpoint #0 resolved at func#2 (opline 0x152ba40)]
[L19      0x152ba70 ZEND_ADD_STRING     C2   @0  ./test_phpdbg.php]
>00019:   echo "function func $param\n";;
 00020: }
 00021:
....

继续执行

和gdb一样,phpdbg的继续执行命令也是continue,简写形式为c。

执行php代码

这个是phpdbg的一个特色。可以在调试的过程中使用ev命令执行任意的php代码。如:

......
prompt> ev $var = "val";
val
prompt> ev var_dump($var);
string(3) "val"
......

可以通过这种方式,在调试过程中动态的修改变量值,查看执行效果。

以上就是本文的全部内容,轻松玩转调试利器PHPDBG,希望大家喜欢。

您可能感兴趣的文章:

  • PHP 程序员的调试技术小结
  • 使用NetBeans + Xdebug调试PHP程序的方法
  • FirePHP 推荐一款PHP调试工具
  • PHP 调试工具Debug Tools
  • php性能优化分析工具XDebug 大型网站调试工具
  • 解析phpstorm + xdebug 远程断点调试
  • 如何使用FireFox插件FirePHP调试PHP
  • 用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
  • phpstorm配置Xdebug进行调试PHP教程
  • 解决ThinkPHP关闭调试模式时报错的问题汇总

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1102467.htmlTechArticlePHP调试的强悍利器之PHPDBG,调试利器phpdbg PHPDBG是一个PHP的SAPI模块,可以在不用修改代码和不影响性能的情况下控制PHP的运行环境。 PHPDBG的...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。