私は少し前に PHP 拡張機能の開発に携わっていて、PHP ソース コードのデバッグ要件がありました。しかし、インターネット上のほとんどのチュートリアルは LINUX でのデバッグ チュートリアルです。WINDOWS システムに関するチュートリアルは非常に少なく、そのプロセスはざっくり説明。そこで、WINDOWS 上でデバッグ環境を構築してみることにしましたが、結局のところ、原理は同じです :)。
1. 準備
以下は私の開発マシンの設定であり、さらなるエラーを減らすために私のものと一致しています。ツールのバージョンによる問題の可能性。
1.Visual Codeソースコード編集およびデバッグツール(VSは通常、Winの開発に必要なものすべてをもたらします。 ##赤でマークされた領域をインストールする必要があります
3.PHP7 ソース コード (github からプルすることも選択できます)
ソース コードのパッケージ バージョンを選択できます4.PHP7- SDK
私の開発マシンは 64 ビットです。PHP7 をコンパイルしているため、 64 ビットの deps-7.1-vc14-x64 (拡張依存関係ライブラリ パッケージ) を選択し、php-sdk-binary-tools. フォルダーを作成し、php-sdk-binary-tools-xxx.zip をこのフォルダーに解凍し、deps- vc14-x64 フォルダーに加え、deps-7.1-vc14-x64.7z もこのフォルダーに解凍します。同時に、php-sdk-binary-tools の bin パスを WINDOWS システム変数 PATH に追加します。 deps-7.1-vc14-x64 はこの記事では当面使用しませんが、付属の拡張機能の一部をコンパイルするライブラリとヘッダー ファイルが含まれているため、最初にダウンロードすることもできます。付属の拡張機能をコンパイルするには、それを使用できます:)。
2. ソース コードをコンパイルします
VS をインストールした後、スタート メニューの [ネイティブ] の Visual Studio 2017 フォルダーで x64 を実行します。 Tools Command Prompt for VS 2017
実行後、PHP7 ソース コード ディレクトリに入ります
1. buildconf.bat を実行して WIN 構成ファイルを生成します(configure.js)
2.configure.bat --help を実行すると、サポートされているコンパイル パラメータを表示できます3.configure.bat --disable-all --enable-cli を実行します。 --enable-debug (簡単なコンパイルをデモンストレーションするために、自分でパラメーターを追加できます)4. nmake コマンドを実行してコンパイルを開始します
ローカル マシンの構成では、コンパイル後の実行可能ファイルはソース内にあります。コード ディレクトリの x64/Debug_TS の下で、後でデバッグを開始する準備をすることができます。
3. VSCODE を使用したデバッグデバッグ方法は、追加プロセス デバッグと実行起動デバッグの 2 種類に分けられます。まずは起動デバッグの実行について紹介します。
まず、テスト用の php ソース コード ファイルをソース コード ディレクトリの x64/Debug_TS に作成します。
次に、メニュー [デバッグ] > [構成を開く] を選択し、[C (Windows)] を選択します。最後に、構成ファイルを次のように変更します
PHP SAPI の cli をコンパイルしたことがあるので、sapi/cli/php_cli.c ソース ファイルを開き、1197 行目にある main 関数を見つけて、そこにブレークポイントを置きます。
次に、VS の DEBUG コントロール パネルに移動してデバッグを実行します。
ブレークポイントがヒットしたことがわかります。
アタッチされたプロセスのデバッグ構成も同様です。メニュー オプション [デバッグ] -> [構成を開く] をクリックし、[構成の追加] を選択します。ポップで C/C (Windows) Attach を選択します。
最終的な構成ファイルは次のとおりです:
追加のプロセスのデバッグのデモンストレーションを容易にするために、最初に PHP -S を使用して組み込みサーバー (この php はコンパイルおよび生成した php.exe ファイルである必要があります) を起動します。 php ファイルが置かれているディレクトリ。
#アクセス効果は次のとおりです:
#デバッグを開始する方法は同じで、デバッグ パネルで (Windows) [アタッチ] を選択します。実行する VSCODE の。
#次に、ポップアップ プロセス リストで PHP プロセスを選択し、デバッグ状態への移行を開始します。
test.php で array_push 関数を使用します。今回は、この関数の実装ブレークポイントに移動し、ext/standard/array.c を開き、2540 行目を見つけてブレークポイントを設定します。
次に、ブラウザで http://127.0.0.1:8080/test.php にアクセスして、ブレークポイントをトリガーします。
4. 最後に
この記事のデバッグ方法は、拡張開発のデバッグ方法としても使用できます。これは Universe IDE Visual Studio に適用されますが、WINDOWS で PHP ソース コードをデバッグするために VSCODE を構成するという私のアイデアは、他のプラットフォーム (Mac/Linux など) にも適用できます。 Visual Studio での PHP ソース コードのデバッグに興味がある場合は、この記事をアイデアとして使用し、自分で考えてみることをお勧めします~
以上がVSCODE を使用して WINDOWS で PHP7 ソース コードをデバッグするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。