web-dev-qa-db-ja.com

intellijの評価式をデバッグする

評価式/コードフラグメントの使用:

https://www.jetbrains.com/idea/help/evaluating-expressions.html

評価された式/コードフラグメントをintellijでデバッグすることは可能ですか?.

Eclipseでは、表示ウィンドウでコード評価を起動し、そのコード内にブレークポイントがある場合、Eclipseデバッガーはそのブレークポイントで停止します。再試行すると、Eclipseはネストされたデバッグセッションで検査を実行できると言います。

Intellijは別のセッションで式を起動するようです。

これに関する私のワークフローは、コードの「すべての行」で停止し、Q&Dデバッグ用に評価するフラグメントを追加することです。多くの場合、これはデバッグの再起動につながります。

27
albfan

残念ながら、これはIntellij 14では不可能であり、あなたが提供した公式リンクで述べられています:

Expression Evaluation内で呼び出されたメソッドの本体内にブレークポイントがある場合、このブレークポイントは無視されます。

デバッグセッションの頻繁な再起動で言及した問題を解消するには、ドロップフレームデバッグ機能で次の回避策を使用します。

  1. メソッドにステップインし、戻る前に、ドロップフレーム機能を使用して前のスタックフレームにフォールバックします。下のスクリーンショットでドロップフレームアイコンの場所を確認してください。 enter image description here
  2. これで、デバッグセッションを再起動せずに、さまざまなパラメーターでこのメソッドを再実行できます(パラメーターは、[式の評価]ダイアログを使用して設定できます)。
24

この機能はIntelliJでは使用できませんIDEA 2019.2

私が使用する回避策は、次のようにコードを更新することです、

                    Boolean shouldExecute = false;
                    if(shouldExecute){
                        //method call
                    }

デバッグセッション中に、shouldExecuteフラグをtrueに変更します。このようにして、必要に応じてメソッド呼び出しをデバッグできます。

大まかに言って、これは単なる回避策です。後でこのフラグを削除する必要があります。

0
Karthik P