Just-In-Time モードでのデバッグ
PhpStorm は、 ジャストインタイム (JIT) モードで Xdebug の使用をサポートしているため、常にコードにアタッチされるのではなく、エラーが発生した場合や例外がスローされた場合にのみ PhpStorm に接続します。 使用する Xdebug のバージョンに応じて、この操作モードは次の設定で切り替えられます。
Xdebug 2 は xdebug .remote_mode(英語) 設定を使用しますが、これは
jitに設定する必要があります。Xdebug 3 は xdebug.start_upon_error(英語) 設定を使用しますが、これは
はいに設定する必要があります。
このモードは、コマンドラインスクリプトのデバッグと Web サーバーのデバッグの両方に使用できます。
Just-In-Time モードで使用するための Xdebug の構成
コマンドラインスクリプトをデバッグするのか、Web サーバーを使用するのかに応じて、以下のいずれかのシナリオを使用します。
コマンドラインスクリプト
コマンドラインスクリプトのデバッグ時は、カスタム -dxdebug.remote_mode=jit (Xdebug 2 の場合)または -dxdebug.start_upon_error=yes (Xdebug 3 の場合)のディレクティブを 追加の構成オプションとして指定します:
設定 ダイアログ(Ctrl+Alt+S )で に移動します。
PHP 実行可能ファイル リストから、関連する PHP インタープリターを選択し、その横にある
をクリックします。
開いた CLI インタープリター ダイアログで、 追加 領域の 構成オプション フィールドの横にある
をクリックします。
開いた 構成オプション ダイアログで、
をクリックして新しいエントリを追加します。
構成ディレクティブ フィールドに
xdebug.start_upon_errorと入力し、 値 フィールドにはいと入力します。構成ディレクティブ フィールドに
xdebug.remote_modeと入力し、 値 フィールドにjitと入力します。OK をクリックすると、 CLI インタープリター ダイアログに戻り、 構成オプション フィールドに
-dxdebug.remote_mode=jit(Xdebug 2 の場合)または-dxdebug .start_upon_error=yes(Xdebug 3 の場合)が表示されます。
Web サーバーのデバッグ
メインメニューで へ移動します。
開いている リモート環境の検証 で、Web サーバーを選択してデバッガーを検証します。
ローカル Web サーバーまたは共有フォルダー を選択
検証スクリプトを配置するディレクトリ
このフィールドでは、検証スクリプトが作成されるサーバードキュメントルートのフォルダーへの絶対パスを指定します。 所定の位置にタイプの Web サーバーの場合、フォルダーはプロジェクトルートにあります。
フォルダーは HTTP を介してアクセスできる必要があります。
スクリプトを含むディレクトリを指す URL
このフィールドには、検証スクリプトが作成されるフォルダーの URL アドレスを入力します。 プロジェクトルートが HTTP を介してアクセス可能なフォルダーにマップされている場合は、プロジェクトルートまたはその下の任意のフォルダーを指定できます。
リモート Web サーバー を選択
検証スクリプトを配置するディレクトリ
このフィールドでは、検証スクリプトが作成されるサーバードキュメントルートのフォルダーへの絶対パスを指定します。 フォルダーは HTTP を介してアクセスできる必要があります。
デプロイサーバー
このフィールドでは、ターゲット環境にアクセスするためのタイプ ローカルサーバーまたは リモートサーバーのサーバーアクセス構成を指定します。 詳細については、 Web サーバーに接続する を参照してください。
リストから構成を選択するか、 デプロイダイアログの 閲覧
をクリックします。
検証 をクリックすると、PhpStorm で検証スクリプトが作成され、ターゲットリモート環境にデプロイされて実行されます。
読み込まれて Xdebug に関連付けられていると報告されている php.ini ファイルを開きます。
php.ini ファイルで、
[xdebug]セクションを見つけます。xdebug.start_upon_errorの値をデフォルトのデフォルトからはいに変更します。xdebug.remote_modeの値をデフォルトのreqからjitに変更します。
デバッグセッション
デバッグセッションの開始または PHP Web ページのデバッグ構成でデバッグする に従って、ブレークポイントを設定し、デバッグセッションを開始します。
Xdebug は次の 2 つの場合に PhpStorm に接続します:
エラーが発生したとき。 この場合、Xdebug はエラー状態の直後の行で停止します。 その理由は、PhpStorm がまず誤ったコードを実行し、それから何か問題があることに気付く必要があるからです。
例外がスローされたとき。 例外が処理された場合、Xdebug は
catchブロックの最初の行(存在する場合)またはfinallyブロックでブレークします。