[iOS] デバッグ中に変数の値を変更する

2013.03.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

いろいろと iOS アプリ開発を勉強中の諏訪です。
今回はデバッグ時に特定のブレークポイントを指定した場所で変数の値を変更する方法を調べたのでメモしておきます。 何かの処理中にここの値が変わったら、どう動くかという確認をしたいときに便利です。

デバッグ中に変数の値を変更する

今回は以下のコードで試したいと思います。Button をタップすると Label の text に value を代入するというシンプルなコードです。この value の値をデバッグ中に変更します。

- (IBAction)button:(id)sender {
    NSString *value = @"Button clicked.";
    _label.text = value;
}

1.ブレークポイントを設定する

ブレークポイントを設定するには行番号をクリックします。すると下図のように青色に変わります。

lldb01

この状態でデバッグし、Button をタップするとタップすると処理がブレークポイントで止まると思います。

lldb02

2.lldb コマンドを使う

ブレークポイントで止めていると、下図のように DebugArea のコンソールに (lldb) と表示されると思います。

lldb03

ここでブレークポイント中に lldb コマンドを実行すると、変数を変更するなど様々なことができるようになります。今回は value の値を変更したいので、下記のように入力します。

po value = @"hoge"

これで return すると書き換わります。ブレークポイントからまた処理を進めさせたいときは以下のコマンドを入力します。

c

実機を見てみると、変更された値が代入され Label に hoge と表示されます。

lldb04

まとめ

今回は lldb コマンドのうち一番使いそうなコマンドを紹介しましたが、他にもいろいろあります(ブレークポイントを設定したり、一覧したり…)。ぜひ活用していきたいですね。

参考