2010-04-07 4 views
2

영국 내 특정 사용자의 iPhone 응용 프로그램이 다운되고 있습니다. 영국 표준 시간대 및 해당 지역 형식을 사용해 보았지만 iPhone 또는 에뮬레이터에서 충돌을 재현 할 수 없었습니다. 결국 충돌 보고서가있어서 그것을 상징화 할 수있었습니다. 그러나 결과를 이해하는 데 어려움이 있습니다. 스레드 0이 시스템 라이브러리에서 손상된 것 같습니다. 내 앱에서 유일한 전화는 main.m입니다.iPhone 충돌 보고서

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는 문제를 찾지 못했습니다. autorelease를 제거하고 메모리를 해제하는 다른 방법을 사용했습니다. 희망이 그것을 고칠 수 있습니다. – skywalker168

0

나를 믿어도 여전히 그렇습니다. 당신은 over-releasde 객체를 가지고 있습니다. NSZombies를 사용하여 부적절하게 관리 된 정확한 객체를 찾으십시오.

관련 문제