diff --git a/tools/Forward/TraceDebugger_Forward.html b/tools/Forward/TraceDebugger_Forward.html index 9f7092e..759ffd1 100644 --- a/tools/Forward/TraceDebugger_Forward.html +++ b/tools/Forward/TraceDebugger_Forward.html @@ -81,8 +81,8 @@
ブレークポイントを生成したら, 右下のブレークポイントビューの「デバッグ」アイコンをクリックすると, 実際にデバッグ実行が開始されます.
- 最初は, 有効なブレークポイントが入っている行のうち, 時系列上で最初に遭遇するブレークポイントまで実行が進み, そこで実行が一時停止します.
- この画像の場合では, D クラスの passB(B) メソッドの6行目が該当しているため, そこまで実行が進んだ状態で一時停止しています.
+ 最初は, 有効なブレークポイントが入っている行のうち, 時系列上で最初に遭遇する行まで実行が進み, そこで実行が一時停止します.
+ ここでは, D クラスの passB(B) メソッドの6行目が該当しているため, そこまで実行が進んだ状態で一時停止しています.
+ 再びデバッグアイコンをクリックしてデバッグ実行し, D.java の6行目で一時停止している状態にしてください.
デバッグ実行中の状態で, 右下のブレークポイントビューの「再開」アイコンをクリックすると, 有効なブレークポイントが入っている行のうち,
現在の実行時点よりも後で最初に遭遇するブレークポイントにまで実行が進み, そこで実行が再び一時停止します.
もし, 該当するブレークポイントがなかった場合は, そのままデバッグ実行が終了します.
- この画像の場合では, E クラスの setC(C) メソッドの7行目が該当しているため, そこまで実行が進んだ状態で一時停止します.
+ ここでは, E クラスの setC(C) メソッドの7行目が該当しているため, そこまで実行が進んだ状態で一時停止します.
+ いったん終了アイコンを押してデバッグ実行を終了したあと, 再びデバッグアイコンをクリックしてデバッグ実行し, D.java の6行目で一時停止している状態にしてください.
左上の呼び出しスタックビューには, 現在一時停止している行をトップとしたメソッド呼び出しのスタックが表示されています.
表示されているメソッドシグ二チャをクリックすることで, 呼び出し元のスタックフレームや呼び出し先のスタックフレームを見ることができます.
+ いったん左上の呼び出しスタックビュー上で呼び出し先である「D.passB(B) 行: 6」を選択し, エディタ上で D.java が開いている状態にしてください.
トレースデバッガでは, トレースファイルに記録されたステートメント単位の実行時情報を元に, 実行を少しずつ進めていくことができます.
ここで, このステートメント単位は行単位よりも細かい粒度になっていることに注意してください.
右下のブレークポイントビューの「ステップオーバー」アイコンをクリックすると, 実行を行単位で進めます.
なお, 呼び出し先のメソッドがあったとしても, その呼び出し先のメソッドに入ることはありません.
- この画像の場合では, ステップオーバーによって, D クラスの passB(B) メソッドの6行目から7行目へと実行が進んでいます.
+ ここでは, ステップオーバーによって, D クラスの passB(B) メソッドの6行目から7行目へと実行を進めます.
右下のブレークポイントビューの「ステップイン」アイコンをクリックすると, 実行をステートメント単位で進め,
呼び出し先のメソッドがある場合はその呼び出し先のメソッドに入ります.
- この画像の場合では, ステップインによって, 呼び出し先である B クラスの getC() メソッドへ入っています.
+ ここでは, ステップインによって, 呼び出し先である B クラスの getC() メソッドへ入っていきます.
右下のブレークポイントビューの「ステップリターン」アイコンをクリックすると, 呼び出し元のメソッドに復帰するまで実行を進めたうえで,
その呼び出し元のメソッド内で次のステートメントにまで進めます.
- この画像の場合では, ステップリターンによって, 呼び出し元のメソッドである D クラスの passB(B) メソッドに復帰し,
- 呼び出し元では B.getC() の次のメソッド呼び出しステートメントである E.setC(C) の直前にまで実行が進んでいます.
+ ここでは, ステップリターンによって, 呼び出し元のメソッドである D クラスの passB(B) メソッドに復帰し,
+ 呼び出し元では B.getC() の次のメソッド呼び出しステートメントである E.setC(C) の直前にまで実行を進めます.
+ いったん終了アイコンをクリックしてデバッグ実行を終了したあと, 再びデバッグアイコンをクリックしてデバッグ実行し, D.java の6行目で一時停止している状態にしてください.
+ そのあと, ステップオーバーを1回押して7行目にまで進んだ状態にしてください.
右下のブレークポイントビューの「ステップネクスト」アイコンをクリックすると, 実行をステートメント単位で進めます.
「ステップイン」とは違い, こちらは呼び出し先のメソッドがあったとしても, その呼び出し先のメソッドには入ることはありません.
「ステップオーバー」では行単位で実行が進んでしまいますが, 「ステップネクスト」ではより細かいステートメント単位で同一メソッド実行内を進むことができます.
- この画像の場合では, 現在のメソッド呼び出しステートメントである B.getC() の呼び出し先には入らずに,
- そのまま次のメソッド呼び出しステートメントである E.setC(C) の直前にまで実行が進んでいます.
+ ここでは, ステップネクストによって, 現在のメソッド呼び出しステートメントである B.getC() の呼び出し先には入らずに,
+ そのまま次のメソッド呼び出しステートメントである E.setC(C) の直前にまで実行を進めます.
+ いったん終了アイコンをクリックしてデバッグ実行を終了したあと, 再びデバッグアイコンをクリックしてデバッグ実行し, D.java の6行目で一時停止している状態にしてください.
右上の変数ビューでは, 現在のスタックフレームから見える仮引数やフィールドの値(値がオブジェクトへの参照である場合はそのクラス名とID)を確認できます.
@@ -154,6 +160,8 @@