PhpStorm 2020.1ヘルプ

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

After the debugger session has started, the デバッグ tool window will appear, and the program will run normally until one of the following happens:

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

フレームを調べる

The state of the program is represented by frames. When the program is suspended, the current frame stack is displayed on the フレーム tab of the デバッグ tool window.

Frames tab

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

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

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

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

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

変数の調査/更新

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

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

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

User-defined constants are grouped under a separate 定数 node, which is by default collapsed. Once expanded or collapsed, the 定数 node preserves this state across the debugging sessions. Note that if the number of user-defined constants is significant, the stepping performance might decrease. If necessary, you can disable fetching such constants during the debugging session by clicking the Show user-defined constants button on the デバッグツールウィンドウ toolbar. The 定数 node will be hidden.

変数のコピー

When examining variables, you may need to copy a variable name or value to paste it somewhere else or to compare it with another variable.

  • 変数が保持する値をコピーするには、変数を右クリックして値のコピー 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. If you need to view child elements , click the Expand button or press Ctrl+F1 .

    Value tooltip

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

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

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

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

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

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

    Value tooltip appears

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

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

任意の式を評価します

Evaluating arbitrary expressions is the most flexible evaluating option. It lets you evaluate any code as long as it is in the context of the current frame. Using it, you can evaluate declarations, method calls, loops, anonymous classes,lambdas , and so on.

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

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

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

    Select the expression to start from
  2. Click 実行 | デバッグ・アクション | 式の評価 Alt+F8 . The shortcut may not work on Ubuntu (for correct operation, adjust the shortcut configuration ).

  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ビルド、実行、デプロイ | デバッガー | データ・ビューに移動し、値をインラインで表示するオプションを無効にします。

監視式

If you want to keep track of some variable or the result of a more complex expression, set up a watch for this variable or expression. This is useful when you need to add something that is not regularly displayed on the list of variables , or to pin some instance variable thus eliminating the need to expand the tree after each step.

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

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

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

監視を追加する

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

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

    Watch expression

After you have added a variable/expression to 監視式 , it stays there and is evaluated for each step , providing you with the result in the current context.

ウォッチを編集する

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

監視をコピーする

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

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

監視の順序を変更する

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

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

監視を削除する

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

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

Watches allow for the same actions as variables do. For example, you can view them in a dedicated dialog or use them to navigate to the source code.

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

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

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

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

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

  • Alt+F10を押します。

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

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

Blue line indicating the current execution point
最終更新日: 2020年7月08日

関連ページ:

PHPデバッグセッション

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

ブレークポイント

Breakpoints are special markers that suspend program execution at a specific point. This lets you examine the program state and behavior. Breakpoints

デバッグツールウィンドウ

デバッガセッションを開始すると、デバッグツールウィンドウが表示されます。このウィンドウは、デバッガセッションの制御、プログラムデータ(フレーム、変数など)の表示と分析、およびさまざまなデバッガアクションの実行に使用されます。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一...

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

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

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

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

デバッグ

ファイル | 設定 | 言語とフレームワーク | PHP | デバッグfor Windows and LinuxPhpStorm | 環境設定 | 言語とフレームワーク | PHP | デバッグfor macOSこのページを使用して、XdebugとZend デバッガーの動作を設定します。事前構成この...