Get the latest tech news
Untangling Spaghetti: Debugging Non-Terminating Object Programs (2009)
Make an understandable mess, fix the bug, then make it easier to understand
In The Saff Squeeze [ed: need to revive this post next] I started to explore the joys of inlining code. (Always take a snapshot of the state of the code before starting one of these sessions--you'll likely make lots of ugly changes that become irrelevant once you figure out how to fix the problem. For our code, I suspect not getting into the cycle in the first place was the right idea, but we didn't have time to explore this option once we'd identified the problem logic.
Or read this on Hacker News