I find the WebInspector to be the best for finding obscure scripting errors that can cause problems in my app. One thing I do is:
Run up the app on the simulator or on your actual device.
Start up the WebInspector debugger window in Safari
Execute the following command in the WebInspector console:
This will force your app to restart in the simulator or device, then you can get a full debugging trail - even those calls made before your app views are rendered. So effectively, you can debug your app from initial startup, that you can’t normally do with WebInspector.