ちょっとは人のためになる事をしないとインターネットコミュニティーの皆様に申し訳がないかと思いながら、自分の備忘録ていどでしかなく、実際の所たいした情報も提供できないでいるブログ
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
デバッグに便利。
[NSThread callStackReturnAddresses] は現在の関数呼び出しのスタックの配列を返す。 init などで NSLog するとか、インスタンス変数に copy しておくとかすると、何か問題が起きたとき、どういうコンテキストで作成または操作されたオブジェクトなのかが一目瞭然。 プログラムが止まったとき、インスタンス変数にコピーしたスタック値をデバッガで Print Descriptions to Console でダンプ。 こんな感じのダンプが得られるので、value=の値のコードを見れば良い。 <CFArray 0x16b6b30 [0x30307a00]>{type = immutable, count = 34, values = ( 0 : <CFNumber 0x575d5b0 [0x30307a00]>{value = +177430, type = kCFNumberSInt64Type} 1 : <CFNumber 0x575d5f0 [0x30307a00]>{value = +179341, type = kCFNumberSInt64Type} 2 : <CFNumber 0x575d6f0 [0x30307a00]>{value = +810632758, type = kCFNumberSInt64Type} 3 : <CFNumber 0x575d6b0 [0x30307a00]>{value = +810639143, type = kCFNumberSInt64Type} 4 : <CFNumber 0x16b15e0 [0x30307a00]>{value = +810640304, type = kCFNumberSInt64Type} 5 : <CFNumber 0x16b15f0 [0x30307a00]>{value = +810632758, type = kCFNumberSInt64Type} 6 : <CFNumber 0x575d790 [0x30307a00]>{value = +810631221, type = kCFNumberSInt64Type} 7 : <CFNumber 0x575d7a0 [0x30307a00]>{value = +179617, type = kCFNumberSInt64Type} 8 : <CFNumber 0x575d850 [0x30307a00]>{value = +810632758, type = kCFNumberSInt64Type} 9 : <CFNumber 0x575d860 [0x30307a00]>{value = +810639143, type = kCFNumberSInt64Type} 10 : <CFNumber 0x575d870 [0x30307a00]>{value = +810753438, type = kCFNumberSInt64Type} 11 : <CFNumber 0x575d890 [0x30307a00]>{value = +810632758, type = kCFNumberSInt64Type} 12 : <CFNumber 0x575d8a0 [0x30307a00]>{value = +810631221, type = kCFNumberSInt64Type} 13 : <CFNumber 0x575d8b0 [0x30307a00]>{value = +810877125, type = kCFNumberSInt64Type} 14 : <CFNumber 0x575d810 [0x30307a00]>{value = +34718, type = kCFNumberSInt64Type} 15 : <CFNumber 0x575d820 [0x30307a00]>{value = +21280, type = kCFNumberSInt64Type} 16 : <CFNumber 0x575d830 [0x30307a00]>{value = +815263300, type = kCFNumberSInt64Type} 17 : <CFNumber 0x575d8d0 [0x30307a00]>{value = +815243017, type = kCFNumberSInt64Type} 18 : <CFNumber 0x575d8e0 [0x30307a00]>{value = +815261089, type = kCFNumberSInt64Type} 19 : <CFNumber 0x575d8f0 [0x30307a00]>{value = +815242536, type = kCFNumberSInt64Type} 20 : <CFNumber 0x575db10 [0x30307a00]>{value = +815240215, type = kCFNumberSInt64Type} 21 : <CFNumber 0x575db20 [0x30307a00]>{value = +814969849, type = kCFNumberSInt64Type} 22 : <CFNumber 0x575db30 [0x30307a00]>{value = +814971087, type = kCFNumberSInt64Type} 23 : <CFNumber 0x575da50 [0x30307a00]>{value = +814813151, type = kCFNumberSInt64Type} 24 : <CFNumber 0x575da60 [0x30307a00]>{value = +814722763, type = kCFNumberSInt64Type} 25 : <CFNumber 0x575da70 [0x30307a00]>{value = +814748641, type = kCFNumberSInt64Type} 26 : <CFNumber 0x575d910 [0x30307a00]>{value = +839148405, type = kCFNumberSInt64Type} 27 : <CFNumber 0x575d920 [0x30307a00]>{value = +807687520, type = kCFNumberSInt64Type} 28 : <CFNumber 0x575d930 [0x30307a00]>{value = +807683624, type = kCFNumberSInt64Type} 29 : <CFNumber 0x575d990 [0x30307a00]>{value = +839142449, type = kCFNumberSInt64Type} 30 : <CFNumber 0x575d9a0 [0x30307a00]>{value = +839142646, type = kCFNumberSInt64Type} 31 : <CFNumber 0x575d9b0 [0x30307a00]>{value = +814752238, type = kCFNumberSInt64Type} 32 : <CFNumber 0x575d950 [0x30307a00]>{value = +9444, type = kCFNumberSInt64Type} 33 : <CFNumber 0x575d960 [0x30307a00]>{value = +9298, type = kCFNumberSInt64Type} アドレスからソースコードを表示させるには、デバッガで list *アドレス とする。 スタックトップから2番目の関数の場合、 list* 179341 みたいな感じ。 例外で止まったときの対処とほぼ同じで、大きめのアドレスはシステムライブラリ内(ソースは出ない)小さめのアドレスはユーザーコード(ソースが出る)なので、小さいアドレスをピックアップして呼び出しもとを特定するのが吉。 PR
<<This generally means that another instance of this process was already running or is hung in the debugger
HOME iPhone開発でグローバルブレークポイントに加えるべきシンボル>>
|
カレンダー
カテゴリー
フリーエリア
最新CM
[02/07 @naoshi65536]
[02/07 忍]
[09/18 とおりすがり]
[06/26 ilmare]
[03/16 とおりすがり]
最新記事
(01/30)
(01/30)
(08/13)
(05/26)
(04/08)
最新TB
ブログ内検索
カウンター
アクセス解析
|