web-dev-qa-db-ja.com

Intellijでデバッグ中に戻る前に戻り値を見つけることはできますか?

と:

Object method(){
    ...
    return /* some complex expression */
}

デバッグ中に返される値を確認する方法はありますか?どういうわけか、ブレークポイントを設定して、リターンの直後にヒットするが、実行の前に呼び出し元のコードに到達するのでしょうか?戻り値が何であるかを知り、すべてのローカル変数の値が何であるかを確認できるようにしたいと思います。

私が今やる方法は、一時変数を作成することです:Object ret = /* something complex */; return ret;。しかし、これは面倒であり、余分な不要なコード行も追加します。

注:これは Visual Studioでのデバッグ中に戻る前に戻り値を見つけることができます と同じ質問ですが、intellijの場合です。

102
Kyle

これを行うにはいくつかの方法があるようです。 1つ目は、メソッドシグネチャにブレークポイントを設定することです。この場合、Object method(){にブレークポイントを設定します。これにより、メソッドの入り口と出口を監視できます。上記のように「Watch method return values」と組み合わせて使用​​する必要があると思いますが、計算に時間がかかりすぎるため、これを完全にテストすることはできませんでした。注意、これはデバッガーのパフォーマンスを劇的に低下させ、デバッグに時間がかかります。

また、次のことを手動で行うこともできます。

  1. 戻り行にブレークポイントを設定します。
  2. 戻り行がヒットしたら、戻り行をクリックし、特に表示したい操作にカーソルを置いて、Run-> Evaluate Expression(またはAlt-F8)に移動すると、そのポイントで式が実行され、それが返すものを返します。

:ブレークポイントを作成する場合、IDEA=ブレークポイントでブレークする場合など)にできることはたくさんあります。ブレークポイントを右クリックしてプロパティをクリックすると、式を実行してログに記録するように指示できます。

[〜#〜] update [〜#〜]:最初の方法と組み合わせてこれを試してください。 「Watch method return values」を使用しないでください。デバッグセッションが遅くなったりフリーズしたりするようです。代わりに次のことを行います

  1. 表示する戻り式を右クリックして、「ウォッチに追加」をクリックします
  2. 次に、上記のようなメソッドブレークポイントを追加します。
  3. プログラムをデバッグすると、メソッドはメソッドシグネチャで破損します。
  4. F9キーを押して続行すると、再び壊れるはずです[〜#〜] after [〜#〜]リターン式計算され、戻り式が監視列にあるはずです。

メソッドブレークポイントは遅いので時間がかかることに注意してください。パフォーマンスヒットが多すぎる場合は、returnステートメントブレークポイントを設定して(メソッドブレークポイントを持たずに)メソッドブレークポイントを追加するだけです。 [〜#〜] after [〜#〜] returnステートメントのブレークポイントがヒットし、続行します。

お役に立てれば、

28
jluzwick

IntelliJの場合IDEA 2016.3:デバッグパネルの歯車ボタンの中に隠れています。Show Method Return Valuescheckedです。

IntelliJ IDEA 2016.3 "Show Method Return Values"

デバッガを使用して戻り値を表示する関数の内部をブレークします(---)。

step into function

関数のステップアウト(またはエスケープするまでステップオーバー):

step out

変数に戻り値が表示されることを確認します。

observe the return value

122
Birchlabs

デバッガパネル で利用可能なWatchメソッドの戻り値ボタンがあります。

メソッド戻り値の監視:このボタンをクリックして、最後に実行されたメソッドの戻り値を監視します。

watch method return values

IDEA 12の構成:

IDEA 12

35
CrazyCoder

これはしばらく前に尋ねられましたが、この状況に対処したいときは別の方法を使用します。

デバッグ時には、式(場合によっては「return」の直後の式)をマークし、CTRL + ALT + F8(クイック評価式)を押すことができます。 IntelliJは、返される値を示す小さなウィンドウをポップアップします。

1
Ozilophile