gdbコマンドでobjective-cをデバッグ方法をまとめておきます。
■実行関連
・ステップ実行(関数の中に入り)
(gdb) s
・ステップ実行(関数スキップ)
(gdb) n
・継続実行
(gdb) c
※ s はstep、n はnext、c はcontinueの省略です。
■ブレークポイント関連
・ブレークポイントの一覧表示
(gdb) info b
Num Type Disp Enb Address What
1 breakpoint keep y 0x0000345e in -[ViewController] at /ファイルパス/ファイル名.m:行数
breakpoint already hit 1 time
・ブレークポイントを有効にする
(gdb) enable 5
・ブレークポイントを有効にする
(gdb) disable 5
・ブレークポイントの削除にする
(gdb) delete 5
※ここで 5 はbreakpointの番号
■表示関連
・変数の中身の表示
(gdb) p 変数名
・ポインタの先の中身を表示
(gdb) p *変数名
・変数のアドレスの表示
(gdb) p &変数名
※ pはprintの省略です。
objective-CだどObject型の変数の中身を確認するのには、次の方法があります。
(gdb) po key
ace76675a5b647828e1874dd524daef4
NSString型変数keyに格納されている文字列を確認できましたー。
ちなみに、これをpコマンドで表示させると次のようになります。
(gdb) p key
$4 = (NSString *) 0x66af4
pコマンドではアドレスのみ表示。(Stringだからね。)
keyはポインタ変数なので、ポインタの先のの中身を見てみると
(gdb) p *key
$2 = {
isa = 0x1c18c9c
},
※poコマンドはprint-objectの略です。
他にもいろいろありますが、時間のあるときに追加していきます。