Getting started with the debugger
A debugger is a powerful development tool that allows us to see what code is doing as it runs. When a program is run under the control of a debugger, the user is able to pause execution, examine and change the value of variables, flexibly continue execution to the next line or other explicitly set "breakpoints", and more. Python has a built-in debugger named pdb which provides a user interface that is essentially an augmented Python shell. In addition to normal shell commands, pdb supports various debugger-specific commands, many of which we will experiment with in this chapter as we debug the survey results display code.
How, then, do we use pdb to help figure out what is going on here? We'd like to enter the debugger and step through the code to see what is happening. The first task, breaking into the debugger, can be accomplished by adding import pdb; pdb.set_trace()
wherever we'd like the debugger to get control. The
set_trace()
call sets an explicit...