Effective Debugging

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