Xcodeに備わっているデバッグに関する記事です。
環境(以下の環境で動作確認をしています)
- OSX Yosemite
- Xcode6.1
目次
- デバッガとは
- デバッグで使用するボタン
- 変数ビュー
- コンソール画面
デバッガとは
開発ソフトに含まれることが多い、プログラムを修正(デバッグ)するための支援をしてくれる便利なツールやソフトのことをデバッガと呼びます。Xcodeでは、確認したい命令の行番号をクリックするとブレークポイントと呼ばれる、プログラムを停止するためポイントを貼ることができ、その後各種デバッグ機能を利用することができます。
ブレークポイントを貼ったら、通常通りアプリケーションを実行すると、下記のようにブレークポイントが貼られた行で命令が一時停止します。
緑色の網掛けが掛かっている命令で停止していることを表しています。(実行はされていません)
デバッグで使用するボタン
デバッグで使用する主なボタンは下図の通りで、Xcodeの左下に表示されています。
各種機能は以下の通りです。
- 実行継続 実行を再開して次のブレークポイントで止まるまで、または、ブレークポイントが無ければ最後まで実行する
- ステップオーバー 1行ずつプログラムを実行する
- ステップイン 現在の停止位置がメソッドである場合、そのメソッドの中に入る
- ステップオーバー 現在の定位置がメソッドの中である場合、そのメソッドから外へ出る
この中でよく利用するのが、ステップオーバーです。1行ずつ実行することで変数の値や計算式やメソッドの戻り値の代入などの値が確認できます。
変数ビュー
Xcode左下の画面には、変数の中身を確認できる画面が表示され、変数の中身を確認することができます。以下は、ステップオーバーで1行命令を進めたあとの状態です。
変数strにはabcという文字列が代入されていることがわかります。複雑なプログラムでは、予期せぬ値が代入され、プログラムが正常に動作しないこともありますが、変数ビューで中身を確認することで原因を特定することもできます。
コンソール画面
Xcode右下の画面をコンソール画面と呼びます。コンソールとは、入出力装置や入出力画面のことです。この画面では、プログラム実行時のエラーメッセージが出力されたり、開発者がキーボードを使用してコマンドを入力することができます。
デバッグコマンド
デバッグ中にコンソール画面に入力しデバッグを手助けするpoコマンドを紹介します。
poコマンドはprint objectの略でオブジェクトや変数の値を表示することができます。
上記のように変数strの中身を確認することができます。また、コンソール画面では、「str.isEmpty」のようにメソッドの呼び出し結果を確認することも可能です。
デバッグ機能を有効に使うと、目視だけでは確認漏れしかねないことも検証できます。是非開発時に利用してください。