実際のデバッグでは、「怪しそうな部分」で処理を停止させて、その位置での変数の値やそこからの処理の流れを確認します。
処理を停止させるために使うのがブレークポイントです。処理を停止させたい行にブレークポイントを配置すると、その行の処理が行われる直前にプログラムが停止します。
ブレークポイントを設定するには、設定する行の左側のマージン部分を右クリックしてメニューから「ブレークポイントの追加」を選択します。
今回は左キーが押されたときの「dx = -2;」の行にブレークポイントを設定してみます(画面14)。
画面15のようにブレークポイントが設定されます。
ところで、ブレークポイントがこの丸い印のときには無効になっているので、ここに処理が到達しても実行が停止しません。
iアプリのデバッグでは、ひとつもブレークポイントを配置していない状態で始めると、ブレークポイントが有効にならないことがあります。この場合には、いったんプログラムを終了させてください。デバッグを再開する時は、まずツールバーの実行ボタンを押して、デバッグの待機を始めます(画面16)。
デバッグの待機が始まったら、デバッグボタンの「▼」をクリックしてデバッグメニューを表示させます(画面17)。
「FirstApp」を選択すると、デバッグが始まります(画面18)。
次の画面のようにブレークポイントの印が有効状態を表すカギ印になります。この行が実行される直前に処理が停止します(画面19)。
iアプリエミュレータのウィンドウで左キーを押すと、処理がブレークポイントに到達して、その行が処理される直前で停止します(画面20)。
右上の「変数」ウィンドウには、その時点での変数の状態が表示されています(画面21)。
「デバッグ」ウィンドウ上部のボタンで、処理を1行ずつ進めることができます。
ステップイン メソッド呼び出しの場合には、そのメソッドの中に処理を移します(画面22)。なお、ステップオーバーは、次の行に処理を移し、ステップリターンはメソッドから抜けます。
それではステップオーバーボタンを押してみてください(画面23)。
処理が次の行に進みます(画面24)。
「変数」ウィンドウの「this」を展開させると、インスタンス変数の一覧が表示されます(画面25)。
もういちどステップオーバーしてください(画面26)。
arcフィールドの値が変更されたことが分かります(画面27)。
このようにして、プログラム中のある瞬間での変数の値を確認することができます。また、ステップオーバーなどを利用して、処理の流れを確認することができるのです。
Copyright © ITmedia, Inc. All Rights Reserved.