2010-04-07 2 views
2

Приложение для iPhone отключается для определенных пользователей в Великобритании. Я пробовал использовать часовой пояс в Великобритании и их региональный формат, но не смог воспроизвести крах на моем iPhone или эмуляторе. В конце концов получил отчет о сбоях, и я смог его символизировать. Однако мне трудно понять результаты. Похоже, поток 0 разбился в системной библиотеке. Единственный звонок из моего приложения - main.m.iPhone Crash Report

Резьба 4 имеет что-то знакомое. Это было в:

My App 0x00004cca -[TocTableController parser:didEndElement:namespaceURI:qualifiedName:] (TocTableController.m:1369)

Кодекс:

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];

Он разбился делать Alloc/инициализации? Недостаточно памяти, только в Великобритании? У любого есть идея, что может быть причиной? Заранее спасибо!

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 
+1

Можете ли вы разместить соответствующий код? – dstnbrkr

+0

TocTableController.m: 1369, код (указано в quesiton): NSDateFormatter * dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; – skywalker168

ответ

1

Поврежденный поток управляет контуром основного события. Одна из вещей, которая происходит там, состоит в том, что пул авторезистов сливается, поэтому это может быть проблемой того, что объект перевыполнен.

Если вы могли бы воспроизвести проблему, включение NSZombieEnabled было бы хорошим способом отследить любые ошибки, связанные с высвобождением, но это не то, что вы можете включить в приложении для доставки.

+0

спасибо. NSZombieEnabled = YES не обнаружил никаких проблем. Я удалил авторекламу и использовал другой способ освобождения памяти. Надеюсь, это исправит. – skywalker168

0

Верьте мне, это все еще так. У вас есть объект over-releasde. Просто используйте NSZombies, чтобы найти точный объект, который управлялся ненадлежащим образом.