The most effective debugging tool is still careful thought — coupled with judiciously placed print statements.