Debugging, explained