我的应用程序的很多用户都在这次崩溃中发送,但我无法重复它..所以我正在寻找关于如何排除故障的提示,这里是相关部分崩溃日志:帮我诊断这次崩溃
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Application Specific Information:
objc[1535]: FREED(id): message retain sent to freed object=0x640ad0
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x9116f4b4 _objc_error + 116
1 libobjc.A.dylib 0x9116f4ea __objc_error + 52
2 libobjc.A.dylib 0x9116d7dc _freedHandler + 58
3 ...my_company.my_app 0x00045635 -[MyObject mySelector] + 1494
4 com.apple.Foundation 0x90be18d4 __NSFireTimer + 141
5 com.apple.CoreFoundation 0x93a38adb __CFRunLoopRun + 8059
6 com.apple.CoreFoundation 0x93a36464 CFRunLoopRunSpecific + 452
7 com.apple.CoreFoundation 0x93a36291 CFRunLoopRunInMode + 97
8 com.apple.HIToolbox 0x92982e04 RunCurrentEventLoopInMode + 392
9 com.apple.HIToolbox 0x92982bb9 ReceiveNextEventCommon + 354
10 com.apple.HIToolbox 0x92982a3e BlockUntilNextEventMatchingListInMode + 81
11 com.apple.AppKit 0x9576e78d _DPSNextEvent + 847
12 com.apple.AppKit 0x9576dfce -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156
13 com.apple.AppKit 0x95730247 -[NSApplication run] + 821
14 com.apple.AppKit 0x957282d9 NSApplicationMain + 574
15 ...my_company.my_app 0x00002042 start + 54
所以,从这个行:
3 ...my_company.my_app 0x00045635 -[MyObject mySelector] + 1494
我可以推断,在mySelector消息被发送到一个已经被释放的对象,但我已经通过代码看而我只是无法看到它,并且有太多的其他依赖关系来发布代码。
所以我的问题是:
- 在每行的到底是什么做的数字表明,在上面的例子是1494
- 在前面的行有到__NSFireTimer参考 - 这确实表明mySelector是否被我的代码中的NSTimer调用?
- 我试过运行我的应用程序启用僵尸,除了洒我的代码检查每个对象!=无在mySelector中,如果我不能重复崩溃,我还能做什么?
任何帮助,将不胜感激!
如果可以,请发送您的代码,以便我可以解决崩溃问题。 – 2011-05-01 06:48:46