I, Tonny, as an extremely normal iOS programmer, EXC_BAD_XXX error is the most familiar error I meet everyday. But WHAT the hell cause these boring error messages? I don't want to dig too much deep, I just want to know what's the most likely reason cause each non-human readable error.
The lucky thing is Apple explained some of them many years ago, the unlucky thing is without search engine, you won't be able to find this document. And what's the most lucky thing is we have google(bing can also find this document). It can help a little.
KERN_INVALID_ADDRESS— This is caused by the thread accessing unmapped memory. It may be triggered by either a data access or an instruction fetch; the Thread State section describes how to tell the difference.
KERN_PROTECTION_FAILURE— This is caused by the thread trying to write to read-only memory. This is always caused by a data access.
EXC_BAD_INSTRUCTION— This is caused by the thread executing an illegal instruction.
EXC_I386_DIV— This is caused by the thread doing an integer divide by zero on an Intel-based computer.
And also, EXC_BAD_ACCESS has 2 meanings! Usually on iOS device, EXC_BAD_ACCESS is caused by accessing released object, but obviously, it has much more meanings than we expected.
Hope I can update this post later for more detailed information about any EXC_BAD_XXX error message.