0
我有一個名爲Flick Background(我是開發者)的應用程序。它在Leopard上運行良好,但在Snow Leopard上不起作用(下載圖像時崩潰)。這裏是崩潰日誌(有些被刪除,因爲它包含的個人信息):雪豹墜毀,而不是豹
Process: Flick Background [8591]
Path: <<hidden>>
Identifier: com.alexy.Flick Background
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000020a38928
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libobjc.A.dylib 0x916caee4 objc_msgSend + 36
1 com.apple.CFNetwork 0x969ac054 URLDownload::willSendRequest(_CFURLRequest const*, _CFURLResponse*) + 56
2 com.apple.CFNetwork 0x9694a0a7 URLConnectionClient::getRequestForTransmission(_CFURLResponse*, _CFURLRequest const*, __CFError**) + 413
3 com.apple.CFNetwork 0x96949b2f URLConnectionClient::_clientWillSendRequest(_CFURLRequest const*, _CFURLResponse*, URLConnectionClient::ClientConnectionEventQueue*) + 223
4 com.apple.CFNetwork 0x969ce456 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo<XClientEvent, XClientEventParams>*, long) + 148
5 com.apple.CFNetwork 0x9694994e URLConnectionClient::processEvents() + 94
6 com.apple.CFNetwork 0x969497ef MultiplexerSource::perform() + 183
7 com.apple.CoreFoundation 0x910d90fb __CFRunLoopDoSources0 + 1563
8 com.apple.CoreFoundation 0x910d6bbf __CFRunLoopRun + 1071
9 com.apple.CoreFoundation 0x910d6094 CFRunLoopRunSpecific + 452
10 com.apple.CoreFoundation 0x910d5ec1 CFRunLoopRunInMode + 97
11 com.apple.HIToolbox 0x94426f9c RunCurrentEventLoopInMode + 392
12 com.apple.HIToolbox 0x94426c8d ReceiveNextEventCommon + 158
13 com.apple.HIToolbox 0x94426bd6 BlockUntilNextEventMatchingListInMode + 81
14 com.apple.AppKit 0x91bbba89 _DPSNextEvent + 847
15 com.apple.AppKit 0x91bbb2ca -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 156
16 com.apple.AppKit 0x91b7d55b -[NSApplication run] + 821
17 com.apple.AppKit 0x91b755ed NSApplicationMain + 574
18 com.alexy.Flick Background 0x00001cfa start + 54
我所看到的是,當圖像下載,我的應用程序崩潰。我的第一個結論是,我用來下載圖像的東西在雪豹中貶值。
我沒有雪豹機器,所以我找不到直接的錯誤。這是我可能會認爲是造成這一問題的部分代碼:
NSError *error = nil;
NSData *initalizedUrl = [NSData dataWithContentsOfURL: [NSURL URLWithString:@"URLHERE"] options:0 error:&error];
NSString *rawContents = [[NSString alloc] initWithData:initalizedUrl encoding:NSASCIIStringEncoding];
我相信幾乎100%,這個問題將在雪豹解決。
你爲什麼認爲代碼導致了問題?你的符號表明你的崩潰日誌是什麼樣的? (你*是*保存你的每一個版本的dSYM包,對不對?) – 2010-10-27 22:39:57
我認爲這是這個代碼,因爲這是唯一一個下載某個東西的函數。我迅速移動了主窗口,並且泄漏了數百個物體,後來我發現了這些物體。我甚至沒有開始下載過程。嗯... – alexy13 2010-10-28 11:15:56
那麼,如果你不釋放NSString對象,那將是泄漏之一。泄漏儀器會告訴你更多。你仍然應該象徵崩潰日誌;那麼你將能夠去你的程序在崩潰時的確切代碼行。 – 2010-10-30 01:48:58