IntelliJ IDEA 2020.2ヘルプ

プログラムのステップ・スルー

ステップは、プログラムの段階的な実行を制御するプロセスです。

IntelliJ IDEAは、戦略に応じて使用される一連のステップアクションを提供します(たとえば、次の行に直接移動するか、途中で呼び出されたメソッドを入力する必要があるかなど)。

ステップボタンは、デバッグツールウィンドウのツールバーにあります。

Stepping buttons in the Debug tool window

ステップ・オーバー

現在のコード行をステップオーバーし、強調表示された行にメソッド呼び出しが含まれている場合でも、次の行に移動します。メソッドの実装はスキップされ、呼び出し元メソッドの次の行に直接移動します。

  • ステップ・オーバーボタン Step Over button をクリックするか、F8を押します。

この例では、5行目が実行されようとしています。ステップオーバーすると、デバッガーは doCount() メソッドにジャンプすることなく、6行目に直接移動します。

Stepping over a method call

スキップされたメソッド内にブレークポイントがある場合、デバッガーはそれらで停止します。途中でブレークポイントをスキップするには、強制的にステップ・オーバーを使用します。

Step over took us to the next line of code

ステップ・イン

メソッドにステップインして、その内部で何が起こるかを示します。このオプションは、メソッドが正しい結果を返していることが確実でない場合に使用します。

  • ステップ・インボタン Step Into button をクリックするか、F7を押します。

この例では、5行目が実行されようとしています。ステップインすると、デバッガーは count(int to) メソッドの実装にジャンプし、その結果がどのように生成されるかを詳細に調べることができます。

Stepping in a method

回線上に複数のメソッド呼び出しがある場合、IntelliJ IDEAは入力するメソッドを確認します。この機能はスマート・ステップ・インと呼ばれます。

Inside the method

回線に複数のメソッド呼び出しがあるたびにスマート・ステップ・インが自動的に使用されるように構成できます。または、明示的にそうした場合にのみ呼び出すことができます。この機能を構成するには、 設定/環境設定 | ビルド、実行、デプロイ | デバッガー | ステップ に移動し、必要に応じて常にスマート・ステップ・インするオプションを設定します。

一部のメソッド(たとえば、Systemなどの標準Javaクラスのメソッド)は、通常はデバッグする必要がないため、ステップ・インによってスキップされます。このリストは、設定/環境設定ダイアログ Ctrl+Alt+Sビルド、実行、デプロイ | デバッガー | ステップページで微調整できます。

スマート・ステップ・イン

スマート・ステップ・インは、1行に複数のメソッド呼び出しがあり、どのメソッドに入るかについて具体的に知りたい場合に役立ちます。この機能により、目的のメソッド呼び出しを選択できます。

  1. メインメニューから実行 | デバッグ・アクション | スマート・ステップ・インを選択するか Shift+F7を押します。

  2. メソッドをクリックします。矢印キーまたはタブを使用して選択し、Enter / F7を押すこともできます。

    Smart Step into lets you decide which method to enter

回線で複数のメソッド呼び出しがあるたびに、通常のステップ・インの代わりにスマート・ステップ・インを使用するように構成できます。これは 設定/環境設定 | ビルド、実行、デプロイ | デバッガー | ステップ で行われます。

ステップ・アウト

現在のメソッドから抜け出し、呼び出し元のメソッドに移動します。

  • ステップ・アウトボタン Step Out button をクリックするか、Shift+F8を押します。

この例では、ステップアウトするとループのすべての反復がスキップされ、main メソッド(呼び出し元)に直接移動します。

Step out continues the execution until the method is complete

コード・ブロックのステップ・アウト

現在実行されているコードブロックからステップアウトします。これにより、含まれているメソッドを終了せずに、while , for の残りの反復をスキップできます。

  • メインメニューから実行 | デバッグ・アクション | コード・ブロックのステップ・アウトを選択します。

この例では、アクションによって for ループが終了し、12行目に移動します。ループは実行され、出力は、反復ごとにステップ実行したかのようにコンソールに表示されます。

Steps out of the for loop but not the method

カーソル位置まで実行

キャレットの位置に達するまで実行を継続します。

  1. プログラムを一時停止する行にキャレットを置きます。

  2. カーソル位置まで実行ボタン Run to Cursor button をクリックするか、Alt+F9を押します。

また、ガターの行番号をクリックしてカーソル位置まで実行を実行できます。

Run to Cursor with a single click

カーソル位置まで実行設定/環境設定 | ビルド、実行、デプロイ | デバッガーの行番号をクリックする際に動作するかどうかを構成できます。

この例では、カーソル位置まで実行は実行を継続し、ブレークポイントがあるかのように7行目で停止します。 count() メソッドにブレークポイントがある場合、プログラムはそこで中断されます。

Caret is in the piece of code where we want to go

途中でブレークポイントをスキップするには、強制的にカーソル位置まで実行を使用します。

強制的にステップ・イン

このメソッドが通常のステップ・インによってスキップされた場合でも、メソッドのステップ。

  • 強制的にステップ・インボタン Force Step Into icon をクリックするか、Alt+Shift+F7を押します。

この例では、System.out.println()を呼び出しようとしている行の直前で実行が中断されます。

Force step into disregards the list of ignored classes

強制的にステップ・インを使用すると、System.out.println() メソッドの実装にすぐにジャンプできますが、通常のステップ・インでは20行目になります。

Inside println()

強制的にカーソル位置まで実行

キャレットの位置に達するまで実行を継続します。途中のブレークポイントはすべて無視されます。

  1. プログラムを一時停止する行にキャレットを置きます。

  2. メインメニューから実行 | デバッグ・アクション | 強制的にカーソル位置まで実行を選択するか Ctrl+Alt+F9を押します。

この例では、強制的にカーソル位置まで実行は実行を継続し、ブレークポイントがあるかのように7行目で停止します。 count() 内のブレークポイントは効果がありません。

Caret is in the piece of code where we want to go

強制的にステップ・オーバー

現在のコード行をステップオーバーし、強調表示された行にメソッド呼び出しが含まれている場合でも、次の行に移動します。呼び出されたメソッドにブレークポイントがある場合、それらは無視されます。

  • メインメニューから実行 | 強制的にステップ・オーバーを選択するか Alt+Shift+F8を押します。

この例では、count() メソッドにブレークポイントがある場合でも、ステップオーバーすると6行目のprintステートメントに移動します。そうしないと、ループのすべての反復でアプリケーションが中断されます。

The breakpoint in the called method is going to be ignored

フレームにドロップ

最後のフレームを元に戻し、スタック内の前のフレームを復元できます。これは、たとえば、誤って足を踏みすぎた場合や、クリティカルスポットを逃した機能を再入力したい場合に便利です。

このオプションはローカル変数にのみ影響し、静的およびインスタンス変数の値を元に戻さないため、プログラム全体の状態は復元されないことに注意してください。これにより、プログラムフローが変更される可能性があります。

  • フレームにドロップボタン Drop Frame buttonをクリックします。

この例では、フレームをドロップすると、count が実行されたことがないかのように呼び出し元メソッドに戻ります。

Drop frame undoes the current frame as if the method has not been executed

影響を受けた静的変数またはインスタンス変数はありませんが、コンソール出力は残ります。

0 1 2

ステップ速度を改善する

デバッガー機能はリソースを消費し、ステップのパフォーマンスに影響を与える可能性があります。パフォーマンスが十分でない場合は、この章に記載されている推奨事項に従って最適化してください。

最終更新日: 2020年7月17日

関連ページ:

デバッガーのオーバーヘッドを監視する

Every time youevaluate an expressionorstep over the code, IntelliJ IDEA uses the same resources as the debugged application, and this may drastically

ブレークポイント

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

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

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

ビューのカスタマイズ

デバッグセッション中に、変数、クラス、スレッド、フレームなどに関する情報を取得します。プロジェクトによっては、さまざまな詳細を表示したり、さまざまな形式でデータを表示したりできます。このため、IntelliJ IDEAは、デバッガーでのデータの表示方法をカスタマイズできる一連のオプションを提供します...