diff --git a/tools/Forward/TraceDebugger_Forward.html b/tools/Forward/TraceDebugger_Forward.html index e28c0ce..759ffd1 100644 --- a/tools/Forward/TraceDebugger_Forward.html +++ b/tools/Forward/TraceDebugger_Forward.html @@ -101,12 +101,14 @@

+ いったん終了アイコンを押してデバッグ実行を終了したあと, 再びデバッグアイコンをクリックしてデバッグ実行し, D.java の6行目で一時停止している状態にしてください.
左上の呼び出しスタックビューには, 現在一時停止している行をトップとしたメソッド呼び出しのスタックが表示されています.
表示されているメソッドシグ二チャをクリックすることで, 呼び出し元のスタックフレームや呼び出し先のスタックフレームを見ることができます.

+ いったん左上の呼び出しスタックビュー上で呼び出し先である「D.passB(B) 行: 6」を選択し, エディタ上で D.java が開いている状態にしてください.
トレースデバッガでは, トレースファイルに記録されたステートメント単位の実行時情報を元に, 実行を少しずつ進めていくことができます.
ここで, このステートメント単位は行単位よりも細かい粒度になっていることに注意してください.
右下のブレークポイントビューの「ステップオーバー」アイコンをクリックすると, 実行を行単位で進めます.
@@ -126,20 +128,23 @@ 右下のブレークポイントビューの「ステップリターン」アイコンをクリックすると, 呼び出し元のメソッドに復帰するまで実行を進めたうえで,
その呼び出し元のメソッド内で次のステートメントにまで進めます.
ここでは, ステップリターンによって, 呼び出し元のメソッドである D クラスの passB(B) メソッドに復帰し,
- 呼び出し元では B.getC() の次のメソッド呼び出しステートメントである E.setC(C) の直前にまで実行が進みます.
+ 呼び出し元では B.getC() の次のメソッド呼び出しステートメントである E.setC(C) の直前にまで実行を進めます.

+ いったん終了アイコンをクリックしてデバッグ実行を終了したあと, 再びデバッグアイコンをクリックしてデバッグ実行し, D.java の6行目で一時停止している状態にしてください.
+ そのあと, ステップオーバーを1回押して7行目にまで進んだ状態にしてください.
右下のブレークポイントビューの「ステップネクスト」アイコンをクリックすると, 実行をステートメント単位で進めます.
「ステップイン」とは違い, こちらは呼び出し先のメソッドがあったとしても, その呼び出し先のメソッドには入ることはありません.
「ステップオーバー」では行単位で実行が進んでしまいますが, 「ステップネクスト」ではより細かいステートメント単位で同一メソッド実行内を進むことができます.
- この画像の場合では, 現在のメソッド呼び出しステートメントである B.getC() の呼び出し先には入らずに,
- そのまま次のメソッド呼び出しステートメントである E.setC(C) の直前にまで実行が進んでいます.
+ ここでは, ステップネクストによって, 現在のメソッド呼び出しステートメントである B.getC() の呼び出し先には入らずに,
+ そのまま次のメソッド呼び出しステートメントである E.setC(C) の直前にまで実行を進めます.

+ いったん終了アイコンをクリックしてデバッグ実行を終了したあと, 再びデバッグアイコンをクリックしてデバッグ実行し, D.java の6行目で一時停止している状態にしてください.
右上の変数ビューでは, 現在のスタックフレームから見える仮引数やフィールドの値(値がオブジェクトへの参照である場合はそのクラス名とID)を確認できます.
@@ -155,6 +160,8 @@

  • メソッド呼び出しの直前 (当該メソッドのレシーバのオブジェクトと引数のオブジェクトが確認できる)
  • メソッド呼び出しの直後 (当該メソッドのレシーバのオブジェクトと戻り値のオブジェクトが確認できる)
  • + ここでは, いったんステップオーバーを1回押して, D.java の7行目で一時停止している状態にしたあと,
    + 変数ビュー上の「フィールド参照後」や「呼び出し前」を開き, それぞれに関連するオブジェクトが表示されていることを確認してください.