I use NSSetUncaughtExceptionHandler to print the stack trace to local file in iPhone, which will be sent to our server next time the app launches. Then I can examin
NSSetUncaughtExceptionHandler
Set a breakpoint in the catch block, once the flow of code stops you can use gdb commands like 'bt'.