PhpStorm 2020.2 ヘルプ

中断されたプログラムの調査

デバッガーセッションの開始後、デバッグツールウィンドウが表示され、次のいずれかが発生するまでプログラムが正常に実行されます。

その後、プログラムは中断され、現在の状態を調べたり、実行を制御したり、実行時にさまざまなシナリオをテストしたりできます。

フレームを調べる

プログラムの状態はフレームで表されます。プログラムが一時停止すると、現在のフレームスタックがデバッグツールウィンドウのフレームタブに表示されます。

Frames tab

フレームはアクティブなメソッドまたは関数呼び出しに対応します。呼び出されたメソッドまたは関数のローカル変数、その引数、および式の評価を可能にするコードコンテキストを格納します。

メソッドが呼び出されるたびに、新しいフレームがスタックの一番上に追加されます。メソッドの実行が完了すると、対応するフレームがスタックから削除されます(後入れ先出し方式)。

フレームを調べることで、特定のパラメーターがメソッドに渡された理由と、呼び出し時の呼び出し元の状態を理解できます。

スタックをクリップボードにコピー

  • 現在のスレッドのコールスタックをコピーするには、フレームタブの任意の場所を右クリックして、スタックのコピーを選択します。

変数の調査 / 更新

変数タブには、選択したフレーム / スレッドの変数のリストが表示されます。変数の検査は、プログラムが特定の方法で動作する理由を理解できます。

The Variables tab shows you the variables visible from the current execution point

各変数の左側のアイコンは、そのタイプを示しています。

ユーザー定義の定数は、デフォルトで折りたたまれている別の定数ノードにグループ化されます。一度展開または折りたたまれると、定数ノードはデバッグセッション全体でこの状態を保持します。ユーザー定義の定数の数が多い場合、ステップのパフォーマンスが低下する可能性があることに注意してください。必要に応じて、デバッグツールウィンドウツールバーのthe Show user-defined constants buttonをクリックして、デバッグセッション中にそのような定数の取得を無効にすることができます。定数ノードは非表示になります。

変数のコピー

変数を調べるとき、変数名または値をコピーして、別の場所に貼り付けたり、別の変数と比較したりする必要がある場合があります。

  • 変数が保持する値をコピーするには、変数を右クリックして値のコピー Ctrl+C を選択します。

  • 変数の名前をコピーするには、変数を右クリックして名前のコピーを選択します。

変数をクリップボードと比較する

変数値を他の値と比較する必要がある場合は、クリップボードと値を比較オプションを使用します。これは、たとえば変数が長い文字列を保持していて、別の長い文字列と比較する必要がある場合に役立ちます。

  1. 比較するコンテンツをコピーします(たとえば、テキストファイルから)。

  2. 変数タブで、比較する変数を右クリックし、クリップボードと値を比較を選択します。

  3. 開く差分ビューアーの違いを調べます。差分ビューアーを効率的に使用する方法の詳細については、ファイルとフォルダーの比較トピックを参照してください。

専用ダイアログで変数を表示

PhpStorm では、専用のダイアログで変数をインスペクションできます。これは、変数(または参照が保持されているオブジェクト)を追跡し、同時にフレームとスレッド間をナビゲートできるようにする必要がある場合に便利です。

  • 変数タブで変数を右クリックし、インスペクションを選択します。

    Inspect dialog

変数値を設定

特定の条件でプログラムがどのように動作するかをテストする必要がある場合、または実行時の現在の動作を修正する必要がある場合は、変数値を設定 / 変更することでそれを実行できます。

  1. 変数タブで変数を右クリックして値の設定を選択するか、変数を選択して F2 を押します。

  2. 変数の値を入力し、Enter を押します。

    Enter new value for the variable in the field right next to its name

変数またはクラスが宣言されているソースコードを調べる必要がある場合は、変数タブから直接そこに移動できます。

  • 変数が宣言されているコードに移動するには、変数を右クリックしてソースに移動 F4 を選択します。

  • 変数タイプのクラス宣言にナビゲートするには、変数を右クリックして型ソースへジャンプ Shift+F4 を選択します。

    $my_car = new Car(); があるとします。変数ペインで $my_car を選択した場合、ソースに移動を選択すると $my_car = new Car(); が表示され、型ソースへジャンプを選択すると class Car() が表示されます。

式の評価

PhpStorm を使用すると、デバッグセッション中に式を評価して、プログラムの状態に関する追加の詳細を取得したり、実行時にさまざまなシナリオをテストしたりできます。

エディターで簡単な式を評価する

式を評価する最も簡単な方法は、コード内で式を指すことです。これは最も簡単な方法ですが、メソッド呼び出しの評価には使用できません。これらは副作用を引き起こす可能性があるため、安全のために行われます。

このオプションは、エディターから式をすばやく評価する必要がある場合に使用します。

  1. 評価する式をポイントします。式の結果がツールチップに表示されます。

    Value tooltip
  2. 子要素を表示する必要がある場合は、the Expand buttonをクリックするか、Ctrl+F1 を押します。

    Value tooltip

価値のあるツールチップが邪魔になる場合は、遅延を増やすか、完全に無効にすることができます。これを行うには、設定 / 環境設定ダイアログ Ctrl+Alt+Sビルド、実行、デプロイ | デバッガー | データビューに移動し、必要に応じて値ツールチップを表示および値ツールチップの遅延オプションを設定します。

エディターで複雑な式を評価する

メソッド呼び出しを伴うコード内の式を評価したい場合、または式のどの部分を評価するかについて特定したい場合は、式のクイック評価オプションを使用します。

このオプションは、プログラムがブレークポイントに達した後に中断された場合にのみ使用可能です(手動で一時停止されません)。

  1. 式にキャレットを配置する(最も近い一致式を評価する)か、その一部を選択します(複雑な式のどの部分を評価するかを特定したい場合)。

  2. 実行 | デバッグアクション | 式のクイック評価 Ctrl+Alt+F8 をクリックします。

    Value tooltip appears

クイック評価を構成して、コードを選択するだけで(メニュー / ショートカットを使用せずに)コードで機能するようにできます。このオプションを有効にすると、誤ってメソッドを呼び出す可能性があるため、慎重に使用してください。

コード選択でクイック評価を構成するには、設定 / 環境設定 | ビルド、実行、デプロイ | デバッガー | データビューに移動し、コード選択時に値ツールチップを表示するオプションを優先として設定します。

任意の式を評価します

任意の式の評価は、最も柔軟な評価オプションです。現在のフレームのコンテキストにある限り、任意のコードを評価できます。これを使用して、宣言、メソッド呼び出し、ループ、匿名クラス、ラムダなどを評価できます。

この機能を使用して、プログラムの現在の状態に関する追加情報を取得し、すべて同じデバッグセッション内でさまざまなシナリオをテストします。これにより、実行する必要のあるセッションの数が減るため、時間を大幅に節約できます。

このオプションは、プログラムがブレークポイントに達した後に中断された場合にのみ使用可能です(手動で一時停止されません)。

  1. 現在、あなたの前にある式または変数(たとえば、エディターまたは変数タブ)で開始したい場合は、それを選択します。

    Select the expression to start from
  2. 実行 | デバッグアクション | 式の評価 Alt+F8 をクリックします。ショートカットは Ubuntu では機能しない可能性があります(正しく動作させるには、ショートカットの設定を調整してください)。

  3. 評価ダイアログで、選択した式を変更するか、フィールドに新しい式を入力します。コードフラグメントを評価する場合は、展開 Shift+Enter をクリックします。

    The expression is entered in the Code Fragment field
  4. 評価(複数行モードの場合は Ctrl+Enter )をクリックします。式の結果が結果フィールドに表示されます。

    式の結果は、return ステートメントから取得されます。return ステートメントがない場合、結果はコードの最後の行から取得されます(式である必要はありません。リテラルも機能します)。値を取得する有効な行がない場合、結果は undefined です。指定された式を評価できない場合、結果フィールドに理由が示されます。

    Expression result is calculated

評価ダイアログは非モーダルなので、フォーカスをエディターに切り替えて他の変数と式をコピーできます。必要に応じて、複数の評価ダイアログを開くこともできます。

コンソールで変数を評価する

PHP および JavaScript のコンテキストでは、インタラクティブコンソールを使用して、デバッグセッション中に変数の値を表示できます。

  • 変数ペインで変数を選択し、選択のコンテキストメニューからコンソールで評価を選択します。

    コンソールペインに切り替えると、> に変数名が緑色で表示され、そにその値が青色で表示されます。

    Debug console output
  • コンソール入力を使用 the Use Console Input button トグルボタンをクリックし、コンソール> にある変数の名前を入力し、Enter を押してその値を表示します。

    コード補完 Ctrl+Space が使用可能です。変数の名前を入力すると、PhpStorm が候補リストを表示します。

  • 以前に評価された変数を評価するには、キーボードの UpDown の矢印を使用してそれを見つけ、Enter を押します。

コンソールでコードを実行する

PHP デバッグセッションでは、変数を評価するだけでなく、値を変更したり、PHP 関数を呼び出したり、コンソールペインで追加の変数を定義することもできます。この機能は、PHPUnit または Behat の実行 / デバッグ構成では使用できません。

  1. デバッグツールウィンドウのコンソールペインで、ツールバーのコンソール入力を使用トグルボタンthe Use Console Input buttonをクリックします。

    • このトグルボタンが押されたように見えると、変数を評価および変更し、PHP 関数を呼び出し、追加の関数をコンソールペインでその場で定義できます。

    • トグルボタンが押されていないように見える場合、コンソールペインの入力は STDIN のように扱われます。

  2. > にステートメントまたは式を入力し、Enter を押します。PhpStorm はコードフラグメントを評価し、入力コードに出力を表示します。クラス宣言、関数宣言、変数、式など、ほとんどの PHP 構成要素を入力できます。コード補完 Ctrl+Space が利用可能です。入力すると、PhpStorm が候補リストを表示します。

  3. 複数行のコードフラグメントを入力するときは、Shift+Enter を押して改行し、Ctrl+Enter を押して改行します。

  4. 配列とオブジェクトの出力は、デフォルトでは var_export() 関数でラップされ、コンソールに表示されます。表示されている出力を非表示にするには、デバッグページのデバッグコンソールで配列とオブジェクトの子を表示するチェックボックスをオフにします。

インラインで値を表示

PhpStorm は、変数の使用箇所のすぐ隣に変数の値を表示することにより、デバッグプロセスを容易にします。

変数値が変更されると、インラインビューが新しい値で更新され、色が変更されます。

Inline values of the variables change with each step

インライン値ビューはデフォルトで有効になっています。オフにするには、設定 / 環境設定ダイアログ Ctrl+Alt+Sビルド、実行、デプロイ | デバッガー | データビューに移動し、値をインラインで表示するオプションを無効にします。

監視式

変数やより複雑な式の結果を追跡したい場合は、この変数または式の監視を設定します。これは、変数のリストに定期的に表示されないものを追加したり、インスタンス変数を固定したりする必要がある場合に役立ちます。これにより、各ステップの後にツリーを展開する必要がなくなります。

このオプションは、プログラムがブレークポイントに達した後に中断された場合にのみ使用可能です(手動で一時停止されません)。

ウォッチは、選択したフレームのコンテキストで評価されます。ウォッチは、コンテキストから外れている場合、またはコンパイルに失敗した場合は評価できません。この場合、監視にはエラーアイコンError iconのマークが付けられます。

デフォルトでは、監視式タブは非表示になっており、ウォッチは変数タブに表示されます。監視式タブを非表示 / 表示するには、変数または監視式タブの変数タブに監視式を表示するボタンShow watches in variables tabを使用します。

監視を追加する

  1. 監視式タブで新規監視式 New Watch button をクリックします。

  2. 評価する変数または式を入力します。式では、ローカルコンテキスト内にある限り、メソッド呼び出し、ラムダ、変数の宣言などを評価できます。

    Watch expression

変数 / 式を監視式に追加すると、変数 / 式はそのまま残り、ステップごとに評価され、現在のコンテキストで結果を提供します。

ウォッチを編集する

  • 目的の監視を右クリックして、編集を選択します。

監視をコピーする

  1. コピーする監視を選択します。

  2. 変数 / 監視式タブの監視式の複製 Duplicate Watch button をクリックするか、Ctrl+D を押します。

監視の順序を変更する

便宜上、監視が変数 / 監視式タブに表示される順序を変更できます。

  • 変数 / 監視式タブまたは Ctrl+Up および Ctrl+Down キーボードショートカットの監視式を上に移動 / 監視式を下に移動ボタンを使用します。

監視を削除する

  • 単一の監視を削除するには、監視を右クリックして、変数 / 監視式タブで監視式の除去 Delete を選択します。

  • すべてのウォッチを削除するには、変数 / 監視式タブの任意の場所を右クリックして、すべての監視式を除去を選択します。

ウォッチは、変数と同じアクションを可能にします。例:専用のダイアログボックスで表示するか、ソースコード移動するために使用できます。

ウォッチはプロジェクトの一部です。これは、デバッグセッションを失うリスクなしに、デバッグセッションを停止して再実行できることを意味します。

現在の実行ポイントに戻る

プログラムの状態を調べるには、コード内を移動する必要があり、多くの場合、プログラムが中断されている場所に戻る必要があります。

以下のいずれか 1 つを実行します :

  • メインメニューから実行 | デバッグアクション | 実行ポイントの表示を選択します。

  • Alt+F10 を押します。

  • デバッグツールウィンドウのステップツールバーでThe Show Execution Point buttonをクリックします。

現在の実行ポイントは青い線で示されます。この行のコードはまだ実行されていません。

Blue line indicating the current execution point
最終更新日 :

関連ページ:

PHP デバッグセッション

デバッグを開始する前に、デバッグエンジンがインストールされ、適切に構成されていることを確認してください。PhpStorm は、XdebugとZend デバッガーの 2 つの最も一般的なツールを使用したデバッグをサポートしています。これらのツールは互いにブロックしているため、同時に使用できません。こ...

ブレークポイント

ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、単純な場合(たとえば、コード行に到達したときにプログラムを一時停止する場合)や、より複雑なロジック(追加の条件に対するチェック、ログメッ...

ファイル、フォルダー、テキストソースを比較する

PhpStorm を使用すると、任意の 2 つのファイル、フォルダー、テキストソース、またはデータベースオブジェクトの間、およびローカルファイルとそのリポジトリバージョン間の違いを確認できます。2 つのファイルの比較 :PhpStorm はファイルの差分ビューアーに差分を表示します:変更を適用する...

キーボードショートカットの構成

PhpStorm には定義済みのキーマップがいくつか含まれており、頻繁に使用するショートカットをカスタマイズできます。キーマップ構成を表示するには、設定 / 環境設定ダイアログ を開き、キーマップを選択します。PhpStorm は、環境に基づいて事前定義されたキーマップを自動的に提案します。使...

デバッグ

このページは、PHPプラグインが有効になっている場合にのみ使用できます。PHPプラグインは PhpStorm にバンドルされており、デフォルトでアクティブになっています。プラグインが無効になっている場合は、プラグインの管理に従って、設定 / 環境設定 | プラグインページでプラグインを有効にしま...