Exception Type: Exc_Crash (Sigabrt)

Exception Type: EXC_CRASH (SIGABRT) Caused by nanozone_error

Unfortunately, by the time you hit nanozone_error the stack trace isn't going to tell you much because the real problem occurred somewhere else. What's going on here is that malloc_zone_malloc() tried to allocate a block of memory, which failed. It failed because _nano_malloc_check_clear(), which does a slew of checks on newly allocated blocks, found an inconsistency and threw the nanozone_error. See:

https://opensource.apple.com/source/libmalloc/libmalloc-53.1.1/src/nano_malloc.c

What probably happened is that a memory block was modified after being deallocated and returned to the heap, i.e., it wasn't properly retained. A good way to locate over-releases (or under-retains) is to set the NSZombieEnabled environment variable while debugging. In the debugging scheme, go to the "Diagnostics" tab and check "Zombie Objects". Instead of deallocating memory blocks, this turns them into "zombies", objects that stick around only to trap anything that tries to access them. Of course, this causes memory to be consumed pretty rapidly, so it shouldn't be left on permanently. For more info:
https://gist.github.com/JeOam/e62c95a0b4c21974bcf6

Can not Identify the crash Exception Type: EXC_CRASH (SIGABRT) . Crash log included

The stacktrace needs to be symbolicated so you can see what 0x10011c5dc 0x100114000 + 34268 actually means (i.e. what source file and line). See this question for details.

The crash occurs in [NSMutableDictionary setObject:forKey:] and one very common reason for a crash in that method is that the object is nil and you cannot hold nil in Objective-C collection classes. However there should have been some exception text generated which can confirm this.

That's about all I can tell you at this stage.



Related Topics



Leave a reply



Submit