Debugging
Since
Python’s development cycle is so fast, the most
effective way to debug is often to edit your code to make it output
relevant information at key points. Python has many ways to let your
code explore its own state in order to extract information that may
be relevant for debugging. The inspect and
traceback modules specifically support such
exploration, which is also known as reflection or introspection.
Once you have obtained debugging-relevant information, statement
print is often the simplest way to display it. You
can also log debugging information to files. Logging is particularly
useful for programs that run unattended for a long time, as is
typically the case for server programs. Displaying debugging
information is like displaying other kinds of information, as covered
in Chapter 10 and Chapter 16, and similarly for logging it, as covered in
Chapter 10 and Chapter 11. Python 2.3 will also include a module
specifically dedicated to logging. As covered in Chapter 8, rebinding attribute
excepthook of module sys lets
your program log detailed error information just before your program
is terminated by a propagating
exception.
Python also offers hooks enabling interactive debugging. Module
pdb supplies a simple text-mode interactive
debugger. Other interactive debuggers for Python are part of
integrated development environments (IDEs), such as IDLE and various
commercial offerings. However, I do not cover IDEs in this book.
The inspect Module
The inspect module supplies ...