2

私は私のアプリで私の例外をデバッグしたい、私は読んだ

デバッグ-[NSCFDictionarysetObject:forKey:]:nil value addなどを挿入しようとしますが、これらのメソッドはアプリを実行しているときに発生するため、例外ブレークポイントの追加を使用できます。下部にある[追加](+)ボタンをクリックします。ブレークポイントリストをクリックし、[例外ブレークポイントの追加]をクリックして、gccコマンドラインを使用します。しかし、私の質問は、ユーザーがクラッシュレポートを受け取った場合、バグは簡単には発生しません。たとえば、次のように解決します。

  Application received signal SIGSEGV
  (null)
 (
0   CoreFoundation                      0x3120e2bb  + 186
1   libobjc.A.dylib                     0x38f2b97f objc_exception_throw + 30
2   CoreFoundation                      0x3120e1c5  + 0
3   myshine                             0x001f9f51 myshine + 1503057
4   libsystem_c.dylib                   0x393a9e8b _sigtramp + 34
5   myshine                             0x000ac985 myshine + 137605
6   myshine                             0x000ac35d myshine + 136029
7   CoreFoundation                      0x311ab7cf  + 74
8   CoreFoundation                      0x311b1623  + 74
9   CoreFoundation                      0x311ab507  + 326
10  CFNetwork                           0x30f0fa8b  + 98
11  CFNetwork                           0x30f0ec71  + 36
12  CFNetwork                           0x30f11365  + 44
13  CFNetwork                           0x30f110f9  + 88
14  CFNetwork                           0x30f114ff  + 34
15  CFNetwork                           0x30ed0ce1  + 324
16  CFNetwork                           0x30ed1661  + 156
17  CFNetwork                           0x30f0ec71  + 36
18  CFNetwork                           0x30f11365  + 44
19  CoreFoundation                      0x311e3683  + 14
20  CoreFoundation                      0x311e2ee9  + 212
21  CoreFoundation                      0x311e1cb7  + 646
22  CoreFoundation                      0x31154ebd CFRunLoopRunSpecific + 356
23  CoreFoundation                      0x311b39bb CFRunLoopRun + 98
24  myshine                             0x000b20ef myshine + 159983
25  Foundation                          0x31b24e85  + 972
26  libsystem_c.dylib                   0x39382311  + 308
27  libsystem_c.dylib                   0x393821d8 thread_start + 8

)。

*** -[__NSArrayM objectAtIndex:]: index 121 beyond bounds [0 .. 23]

 (
0   CoreFoundation                      0x311963ff  + 186
1   libobjc.A.dylib                     0x38e87963 objc_exception_throw + 30
2   CoreFoundation                      0x310e1ef9  + 164
3   myshine                             0x001720b1 myshine + 1372337
4   UIKit                               0x33090087  + 70
5   UIKit                               0x3309003b  + 30
6   UIKit                               0x33090015  + 44
7   UIKit                               0x3308f8cb  + 502
8   UIKit                               0x3308fdb9  + 488
9   UIKit                               0x32fb85f9  + 524
10  UIKit                               0x32fa58e1  + 380
11  UIKit                               0x32fa51ef  + 6198
12  GraphicsServices                    0x34cbc5f7  + 590
13  GraphicsServices                    0x34cbc227  + 34
14  CoreFoundation                      0x3116b3e7  + 34
15  CoreFoundation                      0x3116b38b  + 138
16  CoreFoundation                      0x3116a20f  + 1382
17  CoreFoundation                      0x310dd23d CFRunLoopRunSpecific + 356
18  CoreFoundation                      0x310dd0c9 CFRunLoopRunInMode + 104
19  GraphicsServices                    0x34cbb33b GSEventRunModal + 74
20  UIKit                               0x32ff92b9 UIApplicationMain + 1120
21  myshine                             0x00026ec7 myshine + 16071
22  myshine                             0x00025660 myshine + 9824
 )

私はNSArrayを限界を超えて知っていますが、私のアプリには多くのNSArrayがあり、それらはユーザーレポートです。場所を見つけるための簡単な方法を教えてください。

4

1 に答える 1

1

あなたの質問から私が理解したのは、アプリでクラッシュを引き起こしたメソッドが必要だということです。これは、 iPhone App Crash Reports のシンボル化に役立つ可能性があります。

于 2013-03-20T09:42:49.470 に答える