IntelliJ IDEA 2025.1 ヘルプ

中断されたプログラムを調べる

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

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

フレームを調べる

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

Frames tab in the Debug tool window

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

Frames and threads are selected in the Frames tab

フレームの概念をより深く理解するために、プログラムの実行時に何が起こるかを見てみましょう。プログラムの実行は main メソッドから始まり、次に他のメソッドが呼び出されます。これらの各メソッドは、追加のメソッド呼び出しを行う場合があります。各メソッド呼び出しのローカル変数とパラメーターのセットは、フレームによって表されます。

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

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

スレッドステータス

スレッドステータスは、スレッドで現在何が起こっているかを反映するために Java によって提供されます。

スレッド状況

説明

MONITOR

スレッドは Java モニターで待機しています。

NOT_STARTED

スレッドはまだ開始されていません。

RUNNING

スレッドはアクティブで実行中です。

SLEEPING

Thread.sleep() または JVM_Sleep() が呼び出されたため、スレッドはスリープしています。

UNKNOWN

スレッドのステータスは不明です。

WAIT

Object.wait() または JVM_MonitorWait() が呼び出された後、スレッドは待機しています。

ZOMBIE

スレッドは実行を完了しました。

「スレッド」アイコン

各スレッドの近くにあるアイコンは、スレッドのステータスを示します。

アイコン

説明

Current thread

中断状態の現在のスレッド。

Running thread

アクティブなスレッド。

Thread at breakpoint

現在のブレークポイントにヒットしたスレッド。

Suspended thread

中断されたスレッド。スレッドは、デバッガーによって一時停止されたときに一時停止としてマークされます。

Frozen thread

フリーズしたスレッド。スレッドは手動で一時停止されたときにフリーズとしてマークされます。

デフォルトでは、IntelliJ IDEA はフレームワークとライブラリの呼び出しに対応するフレームを非表示にします。

ライブラリからフレームを表示

  • 非表示のフレームを表示するには、フレームペインの右上隅にあるすべてのフレームを表示トグルボタン show Frames from Libraries button を押します。

    Frames pane with 57 collapsed framework calls and Show All Frames button in the top-right corner

パッケージを非表示に設定する

  1. 設定 Ctrl+Alt+S | ビルド、実行、デプロイ | デバッガー | ステップに移動します。

  2. 授業に足を踏み入れないでくださいに非表示にするパッケージを指定します。

  3. ステップフィルターを使用してスタックとフレームを非表示にするが有効になっていることを確認してください。

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

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

スレッドのエクスポート

各スレッドの状態とそのスタックトレースを含むレポートを取得する必要がある場合は、スレッドのエクスポートオプションを使用します。これは、スレッドに関する情報をテキスト形式で共有する必要がある場合に便利です。

  1. フレームペインの任意の場所を右クリックし、メニューからスレッドのエクスポートを選択します。

    Export Threads menu item
  2. レポートをテキストファイルとして保存するには、スレッドのエクスポートダイアログでファイルへのパスを指定して保存をクリックするか、コピーをクリックしてクリップボードにコピーします。

    Export Preview dialog

変数の調査 / 更新

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

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

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

変数型

アイコン

説明

Static members

外側のクラスの静的メンバー

A field

オブジェクトのフィールド (静的および非静的の両方)

A field containing a self-reference

自己参照オブジェクトを含むフィールド (たとえば、フィールドが初期化される前の Throwablecause)

A final field

最終フィールド

A static field

static フィールド

A thrown exception

スローされた例外 ( 例外ブレークポイントにヒットしたときにのみ表示されます)

A method return value

メソッドの戻り値 ( メソッド戻り値の表示オプションが有効な場合にのみ表示)

A parameter

メソッドパラメーター

An enum constant

列挙型定数

An array

ローカル配列

A primitive

ローカルプリミティブ型

A watch

ウォッチと自動変数。

A primitive

ローカル参照変数

フィールドのピン留め

オブジェクトに多数のフィールドがある場合は、それらのいくつかをピン留めして、常にリストの上部に表示されるようにすることができます。この優先順位は、対応するクラスのすべてのインスタンスに適用されます。

  • 変数ペインで、変数型を示すアイコンをクリックします。

    Two fields are pinned and have blue flags against them

フィールドが固定されると、青いフラグ が元のアイコンを置き換えます。フィールドの固定を解除するには、このフラグをクリックします。

変数のコピー

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

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

  • 変数が保持する値をコピーするには、変数を右クリックして値をコピー Ctrl+C を選択します。String 以外の型の場合、toString 表現がコピーされます。

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

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

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

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

  3. 開いた差分ビューアーで相違点を調べます。差分ビューアーの詳細については、ファイルとフォルダーの比較を参照してください。

    Clipboard vs Selected dialog

専用の変数を表示するダイアログ

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

  • 変数またはウォッチを右クリックし、インスペクションを選択します。

    Inspect dialog

変数値を設定

プログラムが特定のデータに対してどのように動作するかをテストしたり、実行時にフローを変更したりする場合は、変数値を変更することでそれを実現できます。

  1. 変数を選択し、F2 を押します。または、コンテキストメニューから値の設定を選択します。

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

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

変数ペインから宣言に移動できます。

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

    Jump to Source takes you to the place where the variable is declared
  • 変数型のクラス宣言に移動するには、変数を右クリックして型ソースに移動 Shift+F4 を選択します。

    Jump to Type Source takes you to the place where the type of the variable is defined
  • スタックトレース要素からメソッド本体に移動するには、変数ペインのスタックトレース要素の近くにある移動をクリックします。

    Clicking Navigate takes you to the code of the corresponding method

入ってくる参照を調べる

IntelliJ IDEA は、変数タブ上のオブジェクトへの参照を保持している現在存在するオブジェクトに関する情報を提供します。この機能は、外部変数を使用する匿名クラスのような間接参照も検出します。

  • 参照オブジェクトのリストを表示するには、「変数」タブで変数を右クリックし、「参照オブジェクトの表示」を選択します。

Referring Objects dialog

参照オブジェクトダイアログが開き、選択したオブジェクトへの参照をインスペクションし、参照チェーンを GC ルートまでトレースできます。

何らかのタイプの既存のすべてのオブジェクトの概要が必要な場合、デバッグツールウィンドウのメモリタブを使用して概要を取得できます。

コレクションの内容を閲覧する

配列とリストの場合、個々のオブジェクトをインスペクションするための構造ビューとともに、ページ分けされたエントリのリストを取得できます。

  1. 変数ビューまたはエディターで、コレクションオブジェクトの近くにある表示をクリックします。

  2. カスタムの並べ替えやフィルタリングを行うには、列ヘッダーとダイアログのツールバーにあるアイコンを使用します。

    'Enable Local Filter' icon in the toolbar
'Collection Presentation' dialog showing entries within a list

式の評価

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

この機能は、プログラムがブレークポイントに到達した後に中断された(一時停止されていない)場合にのみ機能します。

式内で呼び出されるメソッド内にブレークポイントがある場合、それらは無視されます。

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

式をすばやく評価するには、エディターで式をポイントします。メソッド呼び出しはこの方法では評価できないことに注意してください。

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

    Value tooltip
  2. 結果のオブジェクトの子要素を表示するには、the Expand button をクリックするか、Ctrl+F1 を押します。

    Resulting objects are represented by trees. This helps you view their internal state

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

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

メソッド呼び出しを含むコード内の式を評価する場合、または評価する式の特定の部分を指定する場合は、式のクイック評価オプションを使用します。

  • Alt を押したまま、評価する式をクリックします。

    Value tooltip appears
  • または、式を選択してから Ctrl+Alt+F8 を押すか、表示されるフローティングツールバーから式の評価を選択します。

    Evaluate Expression button in the floating toolbar

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

コード選択時に式を評価する

  • 設定 | ビルド、実行、デプロイ | デバッガー | データビューに移動し、コード選択時に値ツールチップを表示するオプションを設定します。

任意の式を評価する

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

  1. 任意の式を評価するには、変数ペインの式の評価フィールドに式を入力して、を押します。Enter

    Expression in the Variables tab
  2. 結果はすぐ下に表示されます。式フィールドの右側にある をクリックして、式をウォッチに追加することもできます。

    Result of an expression in the Variables tab

長いコードブロックを評価する場合は、専用のダイアログを使用することをお勧めします。

専用の式を評価するダイアログ

  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

評価ダイアログは非モーダルなので、フォーカスをエディターに戻して他の変数や式をコピーすることができます。また、複数の評価ダイアログを開くこともできます。

インラインで値を表示

IntelliJ IDEA は、変数の使用箇所のすぐ隣に変数の値を表示します。

Variable values are displayed at the lines where they are used

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

Inline values of the variables change with each step

行にオブジェクトへの参照が含まれている場合は、エディター内でそのフィールドを調べることができます。このポップアップから、変数値を変更したりカスタム型レンダラーを作成したり、インラインウォッチを追加したりすることもできます。

Inline debugger hints

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

インラインウォッチを追加する

ある式の結果を特定の行に表示したい場合は、そのためのインラインウォッチを設定できます。インラインウォッチは永続的であり、セッションの再開後もアクティブなままです。

  1. フィールドを追跡するオブジェクトを参照するインラインヒントをクリックします。

  2. ポップアップで、フィールドを選択し、インラインウォッチとして追加をクリックします。

    Adding an inline watch option
  3. 必要に応じてウォッチを微調整します。有効な Java 式をウォッチとして使用できます。

    Setting an inline watch

エディターで設定したインラインウォッチは、デバッグツールウィンドウの変数タブのインラインウォッチにも表示されます。

インラインウォッチを削除するには、ウォッチにカーソルを合わせ、近くの十字をクリックします。

DFA 支援のデバッグ

IntelliJ IDEA は、実行されたコード部分で後で何が起こるかについてのハイライトも提供します。この分析には、例外、ブール式の結果、コードパスが含まれます。

A hint showing the result of a future boolean condition
A hint showing that an exception will be thrown

以降の実行の分析を無効にするには、ビルド、実行、デプロイ | デバッガー | データビュー | Java に移動し、データフロー解析に基づいて条件値と例外を予測チェックボックスをオフにします。

JSON と XML を視覚化する

インライン値を展開したり、JSON または XML を含む文字列式を評価したりすると、IntelliJ IDEA によってデータの構造化されフォーマットされたビューが提供されます。

これにより、コードの折りたたみ選択範囲の拡大または縮小などのエディター機能を使用して、サブツリーを操作したり、大きなオブジェクト内での便利なナビゲーションを行ったりすることができます。

プレビューポップアップのタブを使用して、構造化ビューと生のビューを切り替えます。

%alt

ウォッチ式

変数またはより複雑な式の結果を追跡したい場合は、この変数または式の監視を設定します。これは、変数のリストに定期的に表示されないものを評価する必要がある場合に便利です。

この機能は、プログラムがブレークポイントに到達した後に中断された(一時停止されていない)場合にのみ機能します。

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

デフォルトでは、監視は変数とともに変数ペインに表示されます。ウォッチ式ペインを表示 / 非表示にするには、レイアウト設定 the Restore Layout button メニューの別々のウォッチオプションを使用します。

ウォッチを追加する

追跡したい表現に応じて、次のようになります。

  • エディター内の式の場合 – 式を選択し、表示されるフローティングツールバーのウォッチポイントに追加アイコン()をクリックします。または、式を変数タブにドラッグします。

    Add to Watches button in the floating toolbar
  • 現在のコンテキスト内の要素の場合 –変数タブで変数を右クリックし、メニューからウォッチポイントに追加を選択します。

  • 任意の式の場合 –変数タブの上部に式を入力し、ウォッチポイントに追加をクリックします。

    The expression in the Variables tab

特定のタイプのオブジェクトがインスペクションされたときにのみウォッチを表示する場合は、クラスレベルのウォッチを設定できます。

クラスレベルのウォッチを追加する

  • 変数ペインでそのようなオブジェクトを右クリックし、新規クラスレベルの監視式を選択します。

ウォッチ式に変数 / 式を追加した後、変数 / 式はそこに残り、各ステップで評価され、現在のコンテキストで結果を提供します。

The expression result in the Variables tab

ウォッチを編集する

  • 目的のウォッチを右クリックして、編集を選択します。

ウォッチを削除する

  • 単一の監視を削除するには、それを右クリックしてウォッチ式の除去を選択します。または、ウォッチを選択して Delete を押します。

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

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

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

視聴を一時停止して再開する

ウォッチがローカルコンテキストに依存していたり、大量の計算を伴う場合、一部のステップでは評価が現実的でないことがあります。そのような場合は、ウォッチを一時停止して必要に応じて評価することができます。

  • ウォッチを一時停止するには、ウォッチを右クリックし、一時停止視聴を選択します。

  • ウォッチを再開するには、ウォッチを右クリックし、再開ウォッチを選択します。

  • 一時停止中のウォッチの 1 回限りの評価を実行するには、ウォッチの近くにある評価をクリックします。

ラベル

デバッグ中に、任意のインスタンスをマークして、任意のコンテキストで簡単に識別できるようにすることが役立つ場合があります。このために、ラベルを追加できます。添付されると、ラベルはその寿命全体にわたってオブジェクトに付随します。

A labeled instance on the Variables tab

これは、条件または式が使用される場合に特に役立ちます。このオブジェクトへの参照を検索する代わりに、ラベルでそのオブジェクトを参照できます。

Using a labeled object in comparison (Evaluate dialog)

コンテキストに関係なくインスタンスを追跡する場合は、このラベルのウォッチを作成します。このタイプのウォッチでは、オブジェクトは現在のフレームとスレッドに関係なく常に手元にあります。

ラベルの追加

  1. 変数タブで、追跡するオブジェクトを現在参照している変数またはウォッチを右クリックします。メニューからオブジェクトをマーク F11 を選択します。

  2. ラベルの名前を入力します。オプションで表示色を選択できます。この場合、Click to select color をクリックして色を選択します。構成が完了したら、「OK」をクリックします。

    Configure label name and color in the Select Object Label dialog

ラベルの除去

  • 削除するラベルを右クリックして、メニューからオブジェクトのマークを解除 F11 を選択します。

実行ポイント

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

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

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

  • メインメニューで、実行 | デバッグアクション | 実行ポイントの表示に移動します。

  • Alt+F10 を押します。

  • デバッグツールウィンドウのステップツールバーで The More button をクリックし、開いたコンテキストメニューから The Show Execution Point button 実行ポイントの表示を選択します。

Blue line indicating the current execution point

関連ページ:

デバッガーセッションを開始する

デバッガーセッションの開始は、プログラムを通常モードで実行するのと非常によく似ています。デバッガーはバックグラウンドで接続されているため、デバッガーセッションを開始するために特別な設定を行う必要はありません。IntelliJ IDEA からプログラムを実行できる場合は、同じ構成を使用してプログラムをデバッグすることもできます。プログラムをデバッグするたびに、デバッガーセッションは実行 / デバッグ構成に基づきます。これにより、アプリケーションを起動するためのパラメーターとアクションを構成できます...

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

デバッガーセッションを開始すると、デバッグツールウィンドウが開きます。このウィンドウを使用して、デバッガーセッションを制御し、プログラムデータ (フレーム、スレッド、変数など) を表示および分析し、デバッガーアクションを実行します。デフォルトでは、プログラムがブレークポイントに到達したときにデバッグツールウィンドウが開き、セッションが終了しても非表示になりません。この動作を変更するには、ビルド、実行、デプロイ | デバッガー設定ページに移動し、ブレークポイントでデバッグウィンドウを表示するチェ...

ブレークポイント

ブレークポイントは、特定のポイントでプログラムの実行を一時停止する特別なマーカーです。これにより、プログラムの状態と動作を調べることができます。ブレークポイントは、たとえば、特定のコード行に到達したときにプログラムを一時停止するなどの単純なものから、追加の条件をチェックしたり、ログに書き込んだりするなどのより複雑なロジックを含むものまであります。ブレークポイントは、一度設定すると、一時的なブレークポイントを除き、明示的に削除するまでプロジェクト内に残ります。ブレークポイントの種類:Intell

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

IntelliJ IDEA を使用すると、ファイル、フォルダー、ローカルファイルとそのリポジトリバージョン、データベースオブジェクト、テキストソース間の違いを確認できます。ファイルを比較:2 つまたは 3 つのファイルを比較するプロジェクトツールウィンドウで、比較するファイルを選択し、を選択するか、を押します。または、1 つのファイルを選択し、コンテキストメニューから比較を選択して、プロジェクトの外部にあるファイルを選択します。アクティブなエディターをクリップボードと比較するエディターの任...

JVM ヒープ内のオブジェクトを分析する

デバッグ時に、メモリタブを使用してヒープ内のオブジェクトを確認できます。IntelliJ IDEA を使用すると、個々のクラスインスタンスを追跡し、オブジェクトが生成または保持される条件を分析できます。この情報は、メモリリークとその原因を検出できます。一部のエラーは見落としやすいため、コード検査だけでは手がかりが得られない場合があります。例: 内部クラスによって外部クラスがガベージコレクションの対象にならない場合があり、その結果が発生する可能性があります。このような場合、メモリタブと参照オブジェ...

キーボードショートカットを設定する

IntelliJ IDEA には定義済みのキーマップがいくつか含まれており、頻繁に使用するショートカットをカスタマイズできます。キーマップ構成を表示するには、設定ダイアログを開き、キーマップを選択します。IntelliJ IDEA は、環境に基づいて事前定義されたキーマップを自動的に提案します。使用している OS と一致することを確認するか、使用している別の IDE またはエディターからのショートカットと一致するものを選択してください(たとえば、Eclipse または NetBeans)。キー...