I'm a bit surprised that "print something" is more popular at the moment than using breakpoints to debug. I always compare doing logging to shining a flashlight in a dark room; you have to point it in the right direction to find what you're looking for. Using breakpoints is like turning on the light; you can look around and see everything and find what you're looking for more easily. As far as "something else" it might be language specific...but another approach might be writing and observing unit tests, which will indicate specific issues as you code.