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 ...
Get Python in a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.