The most important property of a program is whether it accomplishes the intention of its user.
The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.