One of the most tedious things to debug is infinite loops. Sometimes the obstacle is figuring out where the code is looping, usually recursively, often causing a stack overflow in the process. If I have the development tools open on the page already, I can click Pause, and it will usually get around to pausing before crashing, and then I can dig around and figure out what happened.
Then after I have made code changes and I am ready to reload the page to try again, it seems execution continues from where I paused before refreshing the page. Of course, the loop is never going to finish, and pausing again is not going to help, so I am forced to kill the tab instead, and hope the process dies. Sometimes I'll change the state of variables in a way that will cause an error, which will stop execution, but that's extra work and not always possible. What I would like is a way to kill the execution definitively, just like an error does.
But also, the Chrome browser and development tools are not much help in discovering that there is an infinite loop before it gets so bad that the easiest thing to do is kill the whole tab, and even doing that can be a challenge while the CPU is still madly busy trying to get to the end of the loop. It's difficult to get the developer tools open on a window if the loop kicks in before I have much of a chance of interrupting it. But then I'll soon have to kill the tab along with its developer tools anyway because of the above. No fun. To address this, maybe we need to give higher priority to opening the developer tools, or maybe we just need a simple way of killing JavaScript on a page.
Other ideas? How do you deal with infinite loops?