Диагностировать журнал сбоев (для серии сбоев, связанных с UIKit)? - PullRequest
2 голосов
/ 06 января 2010

Буду признателен за понимание, изолирующее некоторые полуповторяющиеся сбои в приложении для iPhone средней сложности ...

Сбои, о которых идет речь, происходят (иногда, но не всегда) при нажатии кнопки UIB на определенном экране приложения.

(Пока не уверен, хотя проблема может проявляться больше при более низких условиях памяти.)

Типичный журнал аварий приведен ниже.

Если не вдаваться в ненужные подробности на этом этапе - основываясь на приведенном ниже журнале, который типичен для нескольких - кто-нибудь может понять, что происходит, и где искать и / или как дальше устранять?

Любая помощь очень ценится!

Спасибо.

~~~

Incident Identifier: ...
CrashReporter Key:   ...
Process:         AppName [1532]         
Path:            /var/mobile/Applications/12345678-9ABC-DEF0-1234-56789ABCDEF0/AppName.app/AppName
Identifier:      AppName
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1]

Date/Time:       2010-01-05 18:20:28.081 -0800
OS Version:      iPhone OS 3.0.1 (7A400)
Report Version:  104

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                 0x30011944 objc_msgSend + 24
1   UIKit                           0x3096e0d0 -[UIApplication sendAction:to:from:forEvent:] + 128
2   UIKit                           0x3096e038 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 32
3   UIKit                           0x3096e000 -[UIControl sendAction:to:forEvent:] + 44
4   UIKit                           0x3096dc58 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 528
5   UIKit                           0x309a660c -[UIControl touchesBegan:withEvent:] + 260
6   UIKit                           0x30935100 _UIGestureRecognizerUpdateObserver + 2136
7   CoreFoundation                  0x3020cd8a __CFRunLoopDoObservers + 466
8   CoreFoundation                  0x3025488c CFRunLoopRunSpecific + 1812
9   CoreFoundation                  0x30254164 CFRunLoopRunInMode + 44
10  GraphicsServices                0x3204529c GSEventRunModal + 188
11  UIKit                           0x308f0374 -[UIApplication _run] + 552
12  UIKit                           0x308eea8c UIApplicationMain + 960
13  AppName                         0x00002090 0x1000 + 4240
14  AppName                         0x0000202c 0x1000 + 4140

Thread 1:
0   libSystem.B.dylib               0x31d47158 mach_msg_trap + 20
1   libSystem.B.dylib               0x31d49ed8 mach_msg + 60
2   CoreFoundation                  0x3025454e CFRunLoopRunSpecific + 982
3   CoreFoundation                  0x30254164 CFRunLoopRunInMode + 44
4   WebCore                         0x3588dbc8 __ZL12RunWebThreadPv + 412
5   libSystem.B.dylib               0x31d705a0 _pthread_body + 20

Thread 0 crashed with ARM Thread State:
    r0: 0x0019e420    r1: 0x30128c94      r2: 0x00014fac      r3: 0x001ce9a0
    r4: 0x001a56e4    r5: 0x00000000      r6: 0x00000000      r7: 0x2ffff1e0
    r8: 0x00014fac    r9: 0x001a97c0     r10: 0x001ce9a0     r11: 0x00000001
    ip: 0x388ed9f0    sp: 0x2ffff1b8      lr: 0x3096e0d8      pc: 0x30011944
  cpsr: 0x200f0010

~~~

1 Ответ

2 голосов
/ 06 января 2010

EXC_BAD_ACCESS + objc_msgSend почти всегда равно сообщению, отправленному на освобожденный объект.

Запустите статический анализатор, и он должен помочь. Также включение NSZombies.

Тогда отлаживайся и веселись!

...