Select to view content in your preferred language

iPad 3, iOS 5, SDK 2.3.2 app crash on pan or zoom

4514
12
Jump to solution
10-03-2012 12:59 PM
AaronConnolly
Regular Contributor
Hi,

I've identified potentially another issue with our application while running on iPad 3. The app crashes in a similar manner as when it crashes on iOS 6 and the iPhone 5. Unfortunately it is difficult to reproduce.

I can provide our project in its current state to reproduce the issue if you'd like.

The app throws a SIGSEGV on this thread on the iPad 3:

0 crime map 0x0046eb16 testflight_backtrace + 238
1 crime map 0x0046f800 TFSignalHandler + 264
2 libsystem_c.dylib 0x332557ec _sigtramp + 48
3 crime map 0x00127780 -[AGSEnvelope intersectsWithEnvelope:] + 144
4 crime map 0x001a64b2 -[AGSGraphicsLayerDrawingOperation main] + 2282
5 Foundation 0x37205392 -[__NSOperationInternal start] + 862
6 Foundation 0x3726e792 __block_global_6 + 102
7 libdispatch.dylib 0x34981c58 _dispatch_call_block_and_release + 12
8 libdispatch.dylib 0x34984816 _dispatch_worker_thread2 + 258
9 libsystem_c.dylib 0x33206dfa _pthread_wqthread + 294
10 libsystem_c.dylib 0x33206ccf start_wqthread + 7

Here's the other stack trace on iPhone for reference.

http://forums.arcgis.com/threads/67653-iPhone-5-and-iOS-6-and-SDK-2.3.2-app-crash-on-zoom-out

I've memory profiled my application and removed several of the possible memory leaks that it identifies. However for the memory leaks in 3rd party libraries I have left those alone because I'm not sure they're legitimate.

Any help or direction you could provide would be great.

Thanks,
- Aaron
0 Kudos
12 Replies
AaronConnolly
Regular Contributor
That's true. Making it a universal binary and supporting the iPad interface has been on our to-do list for a while. Do you think moving to ARC would make a difference? I'm thinking that it might. Perhaps we're not deallocating something when we should and ARC might help resolve that if it's some low-level object. Maybe the OS could do it for us better. Just a thought.

Thanks again for all your help and attention.

- Aaron
0 Kudos
NimeshJarecha
Esri Regular Contributor
Yes, moving to ARC might help. But if you keep your minimum target to 4.x then you'll still have to handle zeroing weak reference. Here is the apple doc.

Also, moving to ARC will be more performant. You are putting all local variables also into autorelease pool which is less performant.

//putting this into autorelease is less performant. it should be explicitly released.
AGSBingMapLayer* layer = [[[AGSBingMapLayer alloc] initWithAppID:kBingMapsAppID style:AGSBingMapLayerStyleAerialWithLabels] autorelease];

Regards,
Nimesh
0 Kudos
AaronConnolly
Regular Contributor
Got it. Thank you Nimesh.
0 Kudos