PhpStorm 2021.1 ヘルプ

ブレークポイント

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

一度設定すると、ブレークポイントは、一時的なブレークポイントを除いて、明示的に削除するまでプロジェクトに残ります。

ブレークポイントの種類

PhpStorm では、次のタイプのブレークポイントを使用できます。

  • 行ブレークポイント : ブレークポイントが設定されたコード行に到達したらプログラムを中断します。このタイプのブレークポイントは、実行可能なコード行に設定できます。

  • メソッドブレークポイント : 指定されたメソッドまたはその実装の 1 つを開始または終了するとプログラムを中断し、メソッドの開始 / 終了条件を確認できるようにします。

  • 例外ブレークポイント : Exception またはそのサブクラスがスローされたときにプログラムを中断します。これらは例外条件にグローバルに適用され、特定のソースコード参照を必要としません。

ブレークポイントの設定

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

  • ブレークポイントを設定するコードの実行可能な行でガターをクリックします。または、行にキャレットを置き、Ctrl+F8 を押します。

    Line breakpoint

メソッドブレークポイントを設定する

  • メソッドが宣言されている行の側ガターをクリックします。または、行にキャレットを置き、Ctrl+F8 を押します。

    Method breakpoint hit

    あるいは、以下の手順を実行します。

    1. Ctrl+Shift+F8 を押すか、メインメニューから実行 | ブレークポイントの表示を選択します。

    2. 表示されるブレークポイントダイアログで、Alt+Insert を押すか the Add button をクリックして PHP メソッドのブレークポイントを選択します。

    3. メソッドブレークポイントの追加ダイアログで、クラスとメソッド、またはブレークポイントを追加するプレーン関数を指定します。

例外ブレークポイントを設定する

  1. デバッグツールウィンドウの左側のブレークポイントの表示 View Breakpoints button をクリックするか、Ctrl+Shift+F8 を押します。

  2. ブレークポイントダイアログで Alt+Insert を押すか the Add button をクリックし、PHP 例外ブレークポイントまたは JavaScript 例外ブレークポイントを選択します。

    creating an exception breakpoint
  3. 例外ブレークポイントの追加ダイアログで、ライブラリまたはプロジェクトから例外クラスを指定します。

詳細は PHP 例外ブレークポイントを使用してデバッグするを参照してください。

解決されたブレークポイント

Xdebug を使用する場合、PhpStorm はブレークポイント解決メカニズムを使用できます。このメカニズムで、デバッガーは、PHP が現在の行の内部実行可能バイトコードを生成できるかどうかを評価します。そのようなコードが行に対して生成されない場合、対応するブレークポイントにヒットできません。Xdebug は最大 5 行までスキャンし、実行可能コードが配置されている行で停止します。ブレークポイントの解決は、Xdebug 2.8 以降でサポートされています。

次の例では、実行コードを 4 行目に置くことはできません。ブレークポイントは 5 行目に解決され、デバッグセッションはそれに応じて中断されます。

Resolved breakpoint in the editor

ブレークポイントが解決されると、PhpStorm は対応する通知を表示します。

Resolved breakpoint notification

必要に応じて、設定 / 環境設定ダイアログ Ctrl+Alt+SPHP | デバッグページで、PhpStorm のブレークポイント解決サポートを構成できます。

  • Xdebug 領域で、現在の行で使用できない場合はブレークポイントを解決します (Xdebug 2.8+) チェックボックスを使用して、ブレークポイントの解決を切り替えます。解決が無効になっている場合、実行可能コードなしでコード行に設定されたブレークポイントは常に無視されることに注意してください。

  • 拡張設定領域で、ブレークポイントが別の行に解決されたかどうかを通知します (Xdebug 2.8+) チェックボックスを使用して、ブレークポイントが解決されたときに PhpStorm が通知メッセージを表示するかどうかを選択します。

ブレークポイントの管理

ブレークポイントを除去する

  • 例外以外のブレークポイントの場合: ガターのブレークポイントをクリックします。

  • すべてのブレークポイントの場合: メインメニューから実行 | ブレークポイントの表示 Ctrl+Shift+F8 を選択し、ブレークポイントを選択して、除去 Delete をクリックします。

誤ってブレークポイントを削除してそのパラメーターを失うのを防ぐために、エディターにドラッグするか、マウスの中央ボタンをクリックして、ブレークポイントを削除することを選択できます。これを行うには、設定 / 環境設定 | ビルド、実行、デプロイ | デバッガーに移動してエディターにドラッグまたはマウスの中央ボタンをクリックを選択します。ブレークポイントをクリックすると、それが有効または無効になります。

ブレークポイントのミュート

ブレークポイントでしばらく停止する必要がない場合は、ミュートできます。これにより、デバッガーセッションを移動することなく、通常のプログラム操作を再開できます。その後、ブレークポイントのミュートを解除して、デバッグを続行できます。

  • デバッグツールウィンドウのツールバーのブレークポイントのミュートボタン Mute Breakpoints button をクリックします。

ブレークポイントを使用可能 / 使用不可にする

ブレークポイントを削除すると、その内部構成は失われます。パラメーターを失うことなく個々のブレークポイントを一時的にオフにするには、無効にすることができます。

  • 非例外ブレークポイントの場合: 右クリックして、必要に応じて有効オプションを設定します。ブレークポイントの削除が割り当てられていない場合は、マウスの中央ボタンで切り替えることもできます。

  • すべてのブレークポイントの場合: ブレークポイントの表示 Ctrl+Shift+F8 をクリックして、リストのブレークポイントをオン / オフにします。

ブレークポイントの移動 / コピー

  • ブレークポイントを移動するには、それを別の行にドラッグします。

  • ブレークポイントをコピーするには、Ctrl を押したまま、ブレークポイントを別の行にドラッグします。これにより、宛先に同じパラメーターを持つブレークポイントが作成されます。

ブレークポイントのプロパティを構成する

ブレークポイントのタイプに応じて、特定のニーズに合わせて操作を調整できる追加のプロパティを構成できます。最も使用されるオプションは、インテンションを介して利用できます。

  • ブレークポイントインテンションにアクセスするには、ブレークポイントのある行にキャレットを置き、Alt+Enter を押します。このオプションは、基本的なブレークポイントプロパティをすばやく設定する必要がある場合に使用します。

    breakpoint intentions
  • プロパティの完全なリストにアクセスするには、ブレークポイントを右クリックしてさらにをクリックするか、Ctrl+Shift+F8 を押します。このオプションは、すべてのブレークポイントの鳥瞰図とその構成の完全な制御に使用します。

インテンションリファレンス

インテンション 説明
ブレークポイントを削除 選択した行のブレークポイントを削除します。
ブレークポイントを無効化 選択した行のブレークポイントを無効にします。
ブレークポイントの編集 最もよく使用されるブレークポイントプロパティを含むダイアログを開きます。その他のプロパティについては、さらにをクリックするか Ctrl+Shift+F8 を押します。

ブレークポイントのプロパティ

使用可能

プロジェクトから削除せずに一時的にブレークポイントを無効にするには、チェックボックスをオフにします。無効化されたブレークポイントは、ステップ実行中にスキップされます。

PhpStorm を構成して、ブレークポイントを完全に削除するのではなく、クリック時に有効 / 無効にすることができます。これを行うには、設定 / 環境設定 | ビルド、実行、デプロイ | デバッガーに移動し、ブレークポイントを削除オプションをエディターにドラッグまたはマウスの中央ボタンをクリックに設定します。

中断

ブレークポイントに達したときにプログラムの実行を一時停止するかどうかを指定します。

非一時停止ブレークポイントは、プログラムを一時停止せずに式をログに記録する必要がある場合(たとえば、メソッドが呼び出された回数を知る必要がある場合)や、ヒットしたときに依存ブレークポイントを有効にするマスターブレークポイントを作成する必要がある場合に便利です。

条件

このオプションは、ブレークポイントに到達するたびにチェックされる条件を指定するために使用されます。条件は、true または false に評価される PHP ブール式です(例: $someID == 'foo')。条件が true と評価された場合、選択されたアクションが実行されます。それ以外の場合、ブレークポイントは無視されます。

式の結果は、return ステートメントから取得されます。return ステートメントがない場合、結果はコードの最後の行から取得されます。

式を評価するときは、プログラムの動作や結果に影響を与える可能性があるため、可能性のある副作用に注意してください。

ログオプション

ブレークポイントに到達すると、次のログがコンソールに記録されます。

  • "ブレークポイントヒット" メッセージ : Breakpoint reached: LineBreakpoint.php:10 のようなログメッセージ

  • スタックトレース : 現在のフレームのスタックトレース。これは、プログラムの実行を中断することなく、このポイントに至ったパスを確認する場合に役立ちます。

  • 評価して記録 : 'Initializing'users->size () などの任意の式の結果。

    式の結果は、return ステートメントから取得されます。return ステートメントがない場合、結果は式でなくてもよいコードの最後の行から取得されます。リテラルも機能します。これを使用して、カスタムメッセージを生成したり、プログラムの実行中にいくつかの値を追跡したりできます。

    式を評価するときは、プログラムの動作や結果に影響を与える可能性があるため、可能性のある副作用に注意してください。

一度ヒットしたら除去する

ブレークポイントを 1 回ヒットした後、プロジェクトから削除するかどうかを指定します。

次のブレークポイントに到達するまで無効にする

次のブレークポイントに到達するまで無効にするボックスでブレークポイントを選択すると、現在のブレークポイントのトリガーとして機能します。これにより、指定したブレークポイントに到達するまで現在のブレークポイントが無効になります。

これが発生した後に再び無効にするか、有効のままにするかを選択することもできます。

このオプションは、特定の条件下または特定のアクションの後でのみプログラムを中断する必要がある場合に役立ちます。この場合、通常、トリガーブレークポイントはプログラムの実行を停止するために必要ではなく、non-suspending になります。

ブレークポイントのステータス

ブレークポイントには、次のステータスがあります。

状況 説明
検証済み デバッガーセッションを開始した後、デバッガーはプログラムをブレークポイントで一時停止することが技術的に可能かどうかをチェックします。はいの場合、デバッガーはブレークポイントを検証済みとしてマークします。
警告 ブレークポイントでプログラムを一時停止することが技術的に可能ですが、それに関連する問題がある場合、デバッガーは警告を表示します。これは、たとえば、メソッドの実装の 1 つでプログラムを一時停止することが不可能な場合に発生する可能性があります。
無効 ブレークポイントでプログラムを一時停止することが技術的に不可能である場合、デバッガーはプログラムを無効としてマークします。この最も一般的な原因は、行に実行可能コードがないことです。
非アクティブ / 依存 ブレークポイントは、別のブレークポイントにヒットするまで無効になるように構成されている場合、非アクティブ / 依存としてマークされますが、これはまだ発生していません。
ミュート すべてのブレークポイントはミュートされているため、一時的に非アクティブです。
使用不可 それはされているため、このブレークポイントが一時的にアクティブで無効
中断しない このブレークポイントには中断ポリシーが設定されているため、ヒットしたときに実行が中断されることはありません。

ブレークポイントアイコン

タイプステータスに応じて、ブレークポイントは次のアイコンでマークされます。

メソッド 例外
標準 line breakpoint method breakpoint exception breakpoint
使用不可 disabled line breakpoint disabled method breakpoint disabled exception breakpoint
検証済み verified line breakpoint verified method breakpoint
ミュート muted line breakpoint muted method breakpoint
非アクティブ / 依存 inactive/dependent line breakpoint inactive/dependent method breakpoint
ミュート無効 muted disabled line breakpoint muted disabled method breakpoint
中断しない non-suspending line breakpoint non-suspending method breakpoint
確認済みの一時停止なし verified non-suspending line breakpoint verified non-suspending method breakpoint
無効 invalid breakpoint

生産性のヒント

デバッグ印刷にブレークポイントを使用する
コードに出力ステートメントを挿入する代わりに、non-suspending ログブレークポイント(他のデバッガーではウォッチポイントと呼ばれることもあります)を使用します。これにより、デバッグログメッセージを処理する、より柔軟で集中化された方法が提供されます。
ロギングブレークポイントをより迅速に設定する
non-suspending ロギングブレークポイントを設定するには、Shift を押しながらガターをクリックします。これはプログラムの実行を中断せず、代わりに Breakpoint reached: LineBreakpoint.php:10 のようなメッセージを記録します。エディターの前にある式をログに記録する場合は、Shift を押しながらガターをクリックする前に、式を選択します。
ブレークポイントの説明を追加する
プロジェクトに多数のブレークポイントがある場合、検索を容易にするためにブレークポイントに説明を追加できます。これを行うには、ブレークポイントダイアログ Ctrl+Shift+F8 のブレークポイントを右クリックし、メニューから説明の編集を選択します。これで、ブレークポイント名の入力を開始すると、フォーカスが取得されます。
ブレークポイントのグループ化
たとえば、特定の問題のブレークポイントをマークアウトする必要がある場合、ブレークポイントをグループに編成できます。これを行うには、ブレークポイントダイアログ Ctrl+Shift+F8 で、グループに配置するブレークポイントを選択し、メニューからグループに移動を選択します。
ソースに移動

ブレークポイントダイアログから選択したブレークポイントが設定されているコード行にジャンプするには、F4 を押します。

関連ページ:

PHP 例外ブレークポイントを使用してデバッグする | PhpStorm

PHP 例外ブレークポイントを使用すると、スクリプトの開始時にデバッガーを開始し、独自のブレークポイントでブレークするか、特定のタイプのエラーまたは例外が発生するたびにブレークポイントを設定できます。PHP 例外ブレークポイントでは、Just-In-Time モードでのデバッグに従って(Xdebug 2 の場合)または(Xdebug 3 の場合)を設定して、ジャストインタイムモードで動作するように Xdebug を構成する必要はありません。PHP 例外ブレークポイントを構成するメインメニューから...

プログラムのステップスルー | PhpStorm

ステップは、プログラムの段階的な実行を制御するプロセスです。PhpStorm は、戦略に応じて使用される一連のステップアクションを提供します(たとえば、次の行に直接移動するか、途中で呼び出されたメソッドを入力する必要があるかなど)。ステップボタンは、デバッグウィンドウのツールバーにあります。ステップオーバー:現在のコード行をステップオーバーし、ハイライトされた行にメソッド呼び出しが含まれている場合でも、次の行に移動します。メソッドの実装はスキップされ、呼び出し元メソッドの次の行に直接移動します...

ブラウザーのデバッグ拡張機能 | PhpStorm

デバッグを開始するには、まずサーバー上でデバッガーエンジンをアクティブにする必要があります。これを行うには、特別なまたはパラメーターを設定する必要があります(詳細については、Xdebug および Zend デバッガーの公式ドキュメントを参照してください)。手動で行うこともできますが、ブラウザーの拡張機能を使用する方が便利です。これにより、ワンクリックでデバッガーを有効にすることができます。次の表に、使用可能なデバッグ拡張機能を示します。Xdebug ヘルパー Xdebug ヘルパーまたは Xdebug-...

実行 / デバッグ構成を操作する | PhpStorm

PhpStorm は、実行 / デバッグ構成を使用して、アプリケーションを実行、デバッグ、テストします。各構成は、名前付きの実行 / デバッグ起動プロパティのセットです。実行 / デバッグ構成には 2 つのタイプがあります。一時的–コンテキストメニューからを選択するたびに作成されます。コンテキストメニューを呼び出すには、オブジェクトまたは領域を右クリックします。一時構成の最大数は 5 です。永続的–テンプレートから明示的に作成されるか、一時的な構成を保存することによって作成されます。永続的な構...