web-dev-qa-db-ja.com

Java Eclipseの呼び出しスタックをナビゲートする

[〜#〜] gdb [〜#〜] のようなデバッガーでは、ブレークポイントで停止すると、コールスタックを簡単に上に移動して、関連するソースとスタックフレームデータを調べることができます。

Eclipseでこれをどのように行いますか?

35
Mark

debug perspective 」で、「debug」という名前のビューを表示します。現在停止しているスレッドごとに、このビューには完全な呼び出しスタックが表示されます。このスタックの1つの要素をクリックすると、エディタービューが切り替わり、対応するクラスが表示されます。「変数」ビューには、このスタック要素の変数が表示されます。

52
Riduidel

デフォルトでは、「デバッグパースペクティブ」が「ブレッドクラム」ビューモードに折りたたまれている場合があります。つまり、一度にスタックトレースが1行しか表示されないことに注意してください。

完全に展開し、ツリーでスタックトレースを表示するには:

  • デバッグビューの右上隅の下矢印をクリックします。
  • 「レイアウト|ツリー」を選択します
2
Brad Parks

デバッグビューでスタックフレームをクリックするだけです。

1
Omry Yadan

ビジュアルデバッガーでは、スタックトレース全体が表示されます。検査したいレベルをクリックしてください。 gdbコマンドを使用するよりも間違いなく簡単です。 :-)

1

最初に、ヒットすることがわかっているコードに1つ以上のブレークポイントを設定し、次のいずれかの方法でアプリケーションをデバッグします。

  • mainメソッドを含むファイルが現在選択されていることを確認してください
  • F11を押す

または

  • mainメソッドを含むパッケージエクスプローラーでファイルを右クリックします。
  • [Debug As]> Java Application

Eclipseは「デバッグパースペクティブ」を表示するはずです(これは、ウィンドウ>パースペクティブ>パースペクティブを開く>デバッグを使用して手動で開くことができます)

ブレークポイントの1つにヒットすると、デバッグパースペクティブに「デバッグ」というタイトルのフレームが表示されます(手動で開くには、ウィンドウ>ビューの表示>デバッグを使用します)。次のようになります。

enter image description here

グレー表示されている領域は、現在ブレークポイントで一時停止されているスレッドのスタックトレースの各ステップを示しています。現在一時停止されているコールスタックの実際の部分は灰色で強調表示されます(したがって、複数のスレッドがある場合、強調表示された行を探すことで現在一時停止されているスレッドを確認できます)。スタックトレースビューの任意の行をクリックすると、詳細が表示されます(例:スタックのそのポイントの「変数」)

0
Chris Halcrow