Like MrTAToad mentioned, put log statements in your code (STDOUT for iPad?).
Perhaps place one at the start (and end?) of each function, and find out what function is the last one that ran before the crash.
Maybe to see if it's a memory issue, try hard booting each crash, then rerun it to see if it crashes at about the same time.
Play the same level and/or load the same resources etc.
This wont be conclusive or anything, just looking for a pattern.