忍者ブログ
ちょっとは人のためになる事をしないとインターネットコミュニティーの皆様に申し訳がないかと思いながら、自分の備忘録ていどでしかなく、実際の所たいした情報も提供できないでいるブログ
[88] [87] [86] [85] [83] [82] [81] [80] [79] [78] [77]
×

[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

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
09 2019/10 11
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
フリーエリア
最新CM
[02/07 @naoshi65536]
[02/07 忍]
[09/18 とおりすがり]
[06/26 ilmare]
[03/16 とおりすがり]
最新TB
プロフィール
HN:
naoshi
性別:
男性
職業:
ソフトウェア技術者
趣味:
料理
自己紹介:
@naoshi65536 で連絡がつくはずです。
バーコード
ブログ内検索
カウンター
アクセス解析
FX NEWS

-外国為替-