So you've been coding away merrily on a project and everything is going well until a bug appears. You reach into your developer's toolbox and pull out a debugger. It's great - you can set breakpoints, you can interrupt when there's an exception and you can inspect expressions at runtime. Whatever challenge awaits, you can be sure that a debugger will help!