How to figure out what's causing a jailbroken iPhone to crash? My iPhone 4 runs iOS 5.0.1 and is jailbroken. It has recently become unstable: it often crashes and restarts in safe mode. Then, in safe mode, I can choose to restart and it will often go right back into safe mode again. Clearly, some little cog has come loose inside.

I haven't found a definitive action that always causes a crash. They occur sporadically, but they occur most often when I am trying to purchase or upgrade an item in the App Store. 

How can I discover what causes the crashes?

Is there a more elegant way to determine it than going into Cydia's list of installed packages and uninstalling the topmost one; then wait and see if it's stable now; otherwise uninstall the now-topmost package? This would probably work out eventually but it's certainly neither fun nor efficient.  

No, I don't keep a list of which package was installed at what date. That would make it easier to roll back a month at a time.

Permanently reverting to a non-jailbroken device is not an option for me. The Cydia tweaks are way too convenient.
The first thing that I would do is to check in the iPhones Diagnostics reports. In Preferences go to General>About>Diagnostics &amp; Usage. There might be information about your crash there. Your other option is to install Crash Reporter and syslogd from Cydia. You would be able to get some information about crashes there. If you're having trouble even getting to Cydia, try disabling MobileSubstrate, those plugins tend to cause a lot of crashes on jailbroken devices.