The Debug messages, warnings and errors all go to the console. Also Unity prints status reports to the console - loading assets, initializing mono, graphics driver info.
If you are trying to understand what is going on look at the editor.log. Here you will get the full picture, not just a console fragment. You can try to understand what’s happening, and watch the full log of your coding session. This will help you track down what has caused Unity crash to crash or find out what’s wrong with your assets.
Unity prints some things on the devices as well; Logcat console for Android and Xcode gdb console on iOS devices
Xcode has built in tools. Xcode 4 has a really nice GUI for debugging crashes, Xcode 3 has less.
Full gdb stack - thread backtrace all
Enable soft-null-check: Enable development build and script debugging. Now uncaught null ref exceptions will be printed to the Xcode console with the appropriate managed call stack.
Try turning the “fast script call” and code stripping off. It may stop some random crashes, like those caused by using some rare .Net functions or reflection.