classic アプリを Carbon Mach-O に移植してたんですが
CW のデバッグだとエラーが出ないのに、普通に実行すると終了時に
「予期しないエラーが発生」っていわれるんですよ。

で、結局原因は main() が void 型になっていたことでした。
OSX では int 型にして 0 を帰さないと、予期しないエラーっていわれるみたいですね。
classic のアプリだったので void になってました。

意外に気がつかないところだと思うんだけど、有名なことなのかな?