IntelliJ IDEA 2023.2 ヘルプ

コードのデバッグ

IntelliJ IDEA は、Java コード用のデバッガーを提供します。インストール / 有効化されたプラグインに応じて、他の言語で記述されたコードをデバッグすることもできます。

デバッグセッション中に、デバッガーをアタッチしてプログラムを起動します。デバッガーの目的は、プログラムの実行を妨害し、内部で何が起こっているかに関する情報を提供することです。これにより、プログラムのバグを検出して修正するプロセスが容易になります。

デバッグする前に

  1. 設定 | ビルド、実行、デプロイ | コンパイラー | Java コンパイラーデバッグ情報を生成するオプションがオン(デフォルト設定)になっていることを確認してください。

    この設定はデバッグに絶対に必要なわけではありませんが、有効のままにすることをお勧めします。これを無効にすると、一部のデバッガー機能を犠牲にしてディスク領域を節約できます。

  2. 設定 | ビルド、実行、デプロイ | デバッガーで一般的なデバッグプロパティと動作を構成します。

    デバッグが初めての場合は、すぐに使用できる構成が機能します。各デバッガー機能に関するトピックは、参照を提供し、該当する場合は関連する設定を説明します。上級ユーザーで、特定のプロパティを探している場合は、デバッガーリファレンスセクションを参照してください。

  3. カスタム構成を使用する場合は、実行 / デバッグ構成を定義します。これは、プログラムに引数を渡す必要がある場合、または起動前に特別なアクティビティを実行する必要がある場合に必要です。実行 / デバッグ構成のセットアップの詳細については、「実行 / デバッグ構成」セクションを参照してください。ほとんどの場合、引数を期待しない、特別な要件がない単純なプログラムをデバッグする場合、これは必要ありません。

一般的なデバッグ手順

アプリケーションをデバッグするための万能の手順はありません。実際の要件に応じて、異なるアクションを異なる順序で使用する必要がある場合があります。このトピックでは、一般的なデバッグ手順を表す一般的なガイドラインを提供します。特定の機能をいつどのように使用するかについての詳細は、それぞれのトピックで説明されています。

  1. プログラムを停止する必要がある場所を定義します。これはブレークポイントを使用して行われます。ブレークポイントは特別なマーカーであり、デバッガーがプログラム状態に介入してフリーズする必要があるときの場所と条件を表します。デバッガーによってフリーズされたプログラムは、「一時停止」と呼ばれます。

    ブレークポイントを使用する代わりに、任意の時点でプログラムを手動で一時停止することもできますが、この方法ではデバッガーの機能にいくつかの制限が課せられ、プログラムを一時停止するタイミングに関する精度が高くなりません。

  2. プログラムをデバッグモードで実行します

    プログラムの定期的な実行と同様に、複数のデバッグセッションを同時に実行できます。

  3. プログラムが中断された後、デバッガーを使用して、プログラムの状態および実行中のプログラムの状態に関する情報を取得します

    デバッガーは、変数値、スレッドの現在の状態、現在ヒープにあるオブジェクトの内訳などに関する情報を提供します。また、例外をスローする(たとえば、処理方法を確認する)か、プログラム実行の途中で任意のコードを実行することにより、さまざまな条件でプログラムをテストできます。

    これらのツールを使用すると、特定の時点でのプログラムの状態を調べることができますが、ステップ機能を使用すると、プログラムの段階的な実行を制御できます。ツールを組み合わせることで、バグの原因を推測し、プログラムの堅牢性をテストできます。

  4. 修正する必要があるものを決定したら、セッションを終了せずに修正できます。この目的のために、IntelliJ IDEA は、コードの一部をオンザフライで調整および再ロードできる機能を提供します。このアプローチは、修正されたクラスを再ロードするトピックで説明されています。

デバッガーの復習

IntelliJ IDEA デバッガーにすでに精通していて、さまざまな便利な機能とアプローチの概要を知りたい場合は、デバッガーリフレッシャービデオシリーズを参照してください。

Debugger Essentials は、行ブレークポイント、ステップ、デバッグセッションの制御、監視、式の評価、ブレークポイント条件などの基本的なトピックをカバーしています。

Debugger Advanced は、ブレークポイントの型と設定、高度なステップ、リモートデバッグ、レンダラーなどをカバーしています。

Debugger Professional は、HotSwap の使用、ラベルのデバッグ、非同期スタックトレース、逆コンパイルされたコードのデバッグなどの高度なトピックをカバーしています。

関連ページ:

プラグインのインストール

プラグインは IntelliJ IDEA のコア機能を拡張します。例: プラグインをインストールして、次の機能を取得します。バージョン管理システム、課題追跡システム、ビルド管理サーバー、その他のツールとの統合。さまざまな言語とフレームワークのコーディング支援サポート。ショートカットのヒント、ライブプレビュー、ファイルウォッチャーなど。新しいプログラミング言語を学ぶのに役立つコーディング演習。デフォルトでは、IntelliJ IDEA には多数のプラグインがバンドルされています。バンドルされたプラ...

デバッガー

このページを使用して、デバッガーの動作を設定し、そのビューをカスタマイズします。共通オプション:ブレークポイントでデバッグウィンドウを表示するこのチェックボックスが選択されている場合、IntelliJ IDEA はブレークポイントに到達するとデバッグツールウィンドウをアクティブにします。ブレークポイントでアプリケーションにフォーカスするこのチェックボックスが選択されている場合、ブレークポイントを押すと、IntelliJ IDEA はエディターにこのブレークポイントの位置を表示し、そのフレームを...

実行 / デバッグ構成

IntelliJ IDEA は、実行 / デバッグ構成を使用して、コードを実行、デバッグ、テストします。各構成は、何を実行し、どのパラメーターと環境を使用するかを定義する、名前付きのスタートアッププロパティのセットです。実行 / デバッグ構成には 2 つのタイプがあります。一時的 — 永続的な構成を持たないクラスを実行するたびに作成されます。これは、メソッドを持つクラスの実行を可能にする最低限のものを提供します。永続的 — テンプレートから明示的に作成されるか、一時的な構成を保存することによって作成...

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

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

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

デバッガーセッションの開始後、デバッグツールウィンドウが表示され、次のいずれかが発生するまでプログラムが正常に実行されます。ブレークポイントがヒットしました、プログラムを手動で一時停止する、その後、プログラムは中断され、現在の状態を調べたり、実行を制御したり、実行時にさまざまなシナリオをテストしたりできます。フレームを調べる:プログラムの状態はフレームで表されます。プログラムが一時停止すると、現在のフレームスタックがデバッグツールウィンドウのフレームタブに表示されます。フレームはアクティブなメ

プログラムの実行フローを変更する

アプリケーションのデバッグ中は、通常、プログラムの通常のフローに従います。ただし、それから逸脱する必要がある場合があります。これは、特定の条件を再現するため、またはプログラムが問題を処理する方法をテストするために必要になる場合があります(たとえば、値の処理や例外の処理)。また、これは、現在調査中の問題に関係のないプログラムの特定の部分をスキップする必要がある場合に便利です。前のスタックフレームに戻る:IntelliJ IDEA を使用すると、プログラムの実行フローで前のスタックフレームにフォー...