Archive for September 23, 2008

Tuesday, September 23, 2008

So You Crashed in objc_msgSend()

Greg Parker:

Most likely, you sent a message to an already-freed object. Or maybe your pointer is perfectly correct, but someone else mangled the object’s contents—perhaps a buffer overrun in a nearby allocation, or use of a dangling pointer that once pointed to the memory now occupied by your object. Occasionally objc_msgSend() crashes because a memory error smashed the runtime’s own data structures, but usually the trouble is in the receiver object itself.

Whether you’re in the debugger or looking at a crash log, you can recover more information about the crash than just the backtrace.