我的iPhone应用程序因英国某些用户而崩溃。我尝试使用英国时区及其区域格式,但无法在我的iPhone或模拟器上重现崩溃。最终得到了一份崩溃报告,我能够象征它。但是,我很难理解结果。看起来线程0在系统库中崩溃了。我的应用程序中唯一的电话是main.m.
线程4有一些熟悉的东西。它在:
My App 0x00004cca -[TocTableController parser:didEndElement:namespaceURI:qualifiedName:] (TocTableController.m:1369)
代码是:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
它崩溃了做alloc / init吗?内存不足,只在英国?任何人都知道可能是什么原因?提前谢谢!
Date/Time: 2010-04-06 21:41:17.629 +0100
OS Version: iPhone OS 3.1.3 (7E18)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread: 0
Thread 0 Crashed:
0 libSystem.B.dylib 0x00090b2c __kill + 8
1 libSystem.B.dylib 0x00090b1a kill + 4
2 libSystem.B.dylib 0x00090b0e raise + 10
3 libSystem.B.dylib 0x000a7e34 abort + 36
4 libstdc++.6.dylib 0x00066390 __gnu_cxx::__verbose_terminate_handler() + 588
5 libobjc.A.dylib 0x00008898 _objc_terminate + 160
6 libstdc++.6.dylib 0x00063a84 __cxxabiv1::__terminate(void (*)()) + 76
7 libstdc++.6.dylib 0x00063afc std::terminate() + 16
8 libstdc++.6.dylib 0x00063c24 __cxa_throw + 100
9 libobjc.A.dylib 0x00006e54 objc_exception_throw + 104
10 Foundation 0x0000202a __NSThreadPerformPerform + 574
11 CoreFoundation 0x000573a0 CFRunLoopRunSpecific + 1908
12 CoreFoundation 0x00056c18 CFRunLoopRunInMode + 44
13 GraphicsServices 0x000041c0 GSEventRunModal + 188
14 UIKit 0x00003c28 -[UIApplication _run] + 552
15 UIKit 0x00002228 UIApplicationMain + 960
16 My App 0x00002414 main (main.m:14)
17 My App 0x000023e4 start + 32
Thread 1:
0 libSystem.B.dylib 0x00001488 mach_msg_trap + 20
1 libSystem.B.dylib 0x00004064 mach_msg + 60
2 CoreFoundation 0x00057002 CFRunLoopRunSpecific + 982
3 CoreFoundation 0x00056c18 CFRunLoopRunInMode + 44
4 WebCore 0x000841d4 RunWebThread(void*) + 412
5 libSystem.B.dylib 0x0002b780 _pthread_body + 20
Thread 2:
0 libSystem.B.dylib 0x00001488 mach_msg_trap + 20
1 libSystem.B.dylib 0x00004064 mach_msg + 60
2 CoreFoundation 0x00057002 CFRunLoopRunSpecific + 982
3 CoreFoundation 0x00056c18 CFRunLoopRunInMode + 44
4 Foundation 0x0005a998 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 172
5 Foundation 0x00053ac6 -[NSThread main] + 42
6 Foundation 0x00001d0e __NSThread__main__ + 852
7 libSystem.B.dylib 0x0002b780 _pthread_body + 20
Thread 3:
0 libSystem.B.dylib 0x000262c0 select$DARWIN_EXTSN + 20
1 CoreFoundation 0x000207e2 __CFSocketManager + 342
2 libSystem.B.dylib 0x0002b780 _pthread_body + 20
Thread 4:
0 libSystem.B.dylib 0x00015764 fegetenv + 0
1 libSystem.B.dylib 0x0002a160 time + 8
2 libicucore.A.dylib 0x00009280 uprv_getUTCtime + 6
3 libicucore.A.dylib 0x0000a492 icu::Calendar::getNow() + 2
4 libicucore.A.dylib 0x0000a2a0 icu::GregorianCalendar::GregorianCalendar(icu::Locale const&, UErrorCode&) + 86
5 libicucore.A.dylib 0x0000a242 icu::GregorianCalendar::GregorianCalendar(icu::Locale const&, UErrorCode&) + 2
6 libicucore.A.dylib 0x000098ec icu::Calendar::createInstance(icu::TimeZone*, icu::Locale const&, UErrorCode&) + 160
7 libicucore.A.dylib 0x00008762 icu::SimpleDateFormat::initializeCalendar(icu::TimeZone*, icu::Locale const&, UErrorCode&) + 28
8 libicucore.A.dylib 0x0000bd2c icu::SimpleDateFormat::SimpleDateFormat(icu::Locale const&, UErrorCode&) + 82
9 libicucore.A.dylib 0x0000bcd2 icu::SimpleDateFormat::SimpleDateFormat(icu::Locale const&, UErrorCode&) + 2
10 libicucore.A.dylib 0x000084aa icu::DateFormat::create(icu::DateFormat::EStyle, icu::DateFormat::EStyle, icu::Locale const&) + 148
11 libicucore.A.dylib 0x0000840e icu::DateFormat::createDateTimeInstance(icu::DateFormat::EStyle, icu::DateFormat::EStyle, icu::Locale const&) + 14
12 libicucore.A.dylib 0x00008336 udat_open + 70
13 CoreFoundation 0x0006c2e0 CFDateFormatterCreate + 252
14 Foundation 0x00019fd2 -[NSDateFormatter _regenerateFormatter] + 198
15 Foundation 0x00019ebe -[NSDateFormatter init] + 150
16 My App 0x00004cca -[TocTableController parser:didEndElement:namespaceURI:qualifiedName:] (TocTableController.m:1369)
17 Foundation 0x000380e6 _endElementNs + 442
18 libxml2.2.dylib 0x00011d2c xmlParseXMLDecl + 1808
19 libxml2.2.dylib 0x0001ef08 xmlParseChunk + 3300
20 Foundation 0x0003772a -[NSXMLParser parse] + 178
21 My App 0x000055e2 -[TocTableController parseTocData:] (TocTableController.m:1120)
22 Foundation 0x00053ac6 -[NSThread main] + 42
23 Foundation 0x00001d0e __NSThread__main__ + 852
24 libSystem.B.dylib 0x0002b780 _pthread_body + 20
Thread 0 crashed with ARM Thread State:
r0: 0x00000000 r1: 0x00000000 r2: 0x00000001 r3: 0x384e83cc
r4: 0x00000006 r5: 0x001d813c r6: 0x2ffff2b8 r7: 0x2ffff2c8
r8: 0x38385cac r9: 0x0000000a r10: 0x0002c528 r11: 0x0012be50
ip: 0x00000025 sp: 0x2ffff2c8 lr: 0x33b3db21 pc: 0x33b3db2c
cpsr: 0x00070010
答案 0 :(得分:1)
崩溃的线程正在运行主事件循环。发生的事情之一是自动释放池被耗尽,因此这可能是对象被过度释放的问题。
如果你可以重现这个问题,打开NSZombieEnabled将是一个很好的方法来追踪任何过度释放错误,但这不是你可以在运输应用程序上启用的。
答案 1 :(得分:0)
相信我仍然如此。你有过度释放的对象。只需使用NSZombies即可找到管理不当的确切对象。