チュートリアル: 値の設定
このチュートリアルでは、最も基本的ではありますが非常に便利なデバッガー機能の 1 つである値の設定の使用方法を学習します。
デバッグ中に、プログラムが特定の方法で動作する理由を理解するために変数に関する情報を取得し、調べます。また、変数に依存するバグを再現したい場合もあります。これを行うには、この変数に特定の値を保持する必要があります。
実行時にプログラムを変更せずに一部の条件を再現するのは退屈で時間がかかる場合があるため、ほとんどの場合、デバッガーから直接変数値を設定することでメリットが得られます。
問題
次の簡単なプログラムを見てみましょう。
このコードには、2 回出力されるインスタンス変数(fish
)があります。fish
変数の getter は遅延初期化を使用します。つまり、オブジェクトは最初に必要になったときにのみ初期化されます。
fish
がすでに初期化されていて(line n1
にいると仮定して)、initFish
メソッドを調べたい場合はどうでしょうか。このメソッドは、(fish == null)
が true
に評価される場合にのみ実行されます。
この単純なケースでは、メソッドにブレークポイントを設定し、セッションを再開するだけです。ただし、より複雑なケースでは、セッションを再開して特定の状態に至るすべての手順を実行するのは非常に不便である場合があります。それでは、よりスマートな方法を学びましょう。
ソリューション
line n1
にいるため、initFish
メソッドで ArrayList
初期化を実行する必要があります。
initFish
メソッドにブレークポイントを配置します。変数タブで、
aquarium
を展開し、fish
を右クリックして、値の設定を選択します。null
と入力します。Enter を押します。F9 を押して、デバッガーセッションを再開します。
これで、条件は true
に評価され、initFish
メソッドをステップ実行して、初期化がどのように実行されるかを確認できます。
要約
このチュートリアルの例では、実行時に変数を変更してプログラムのフローを変更する方法を示しました。この例は非常に単純ですが、より複雑なプロジェクトにも同じ原則を適用できます。この機能を使用すると、多くの時間を節約できます。
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/debug_tutorial_setting_breakpoint.png)
チュートリアル: 最初の Java アプリケーションをデバッグする
Java アプリケーションを作成して実行しました。期待どおりに機能しないことに気付いたとしましょう。例: 間違った値を返すか、例外でクラッシュします。コードにエラーがあるようです。それをデバッグする時が来ました。デバッグとは:一般的に、デバッグとは、プログラム内のエラーを検出して修正するプロセスです。さまざまな種類のエラーがあり、処理します。それらのいくつかは、コンパイラーによって処理されるため、構文エラーのように簡単にキャッチできます。もう 1 つの簡単なケースは、スタックトレースを調べるこ...
![](https://resources.jetbrains.com/help/img/idea/2024.1/debug_remote_tutorial_rc_1.png)
チュートリアル: リモートデバッグ
このチュートリアルでは、IntelliJ IDEA デバッガーを使用してローカルプロセスまたはリモートプロセスに接続する方法を学習します。プロジェクトの作成:まず、デバッグするプロジェクト(大文字をからに出力する単純なプログラム)をセットアップしましょう。新規プロジェクトを作成します。という名前のクラスを作成します。クラスの本体に、メソッドの次の定義を貼り付けます。public static void main(String[] args) { System.out.println("Star...