otrace - an object-oriented debugger for nonlinear tracing

Ramalingam Saravanan sarava at mindmeldr.com
Mon Jun 11 06:59:55 CEST 2012

otrace is an object-oriented debugger for nonlinear tracing of
asynchronous or multithreaded interactive programs. It addresses
some of the limitations of sequential debugging techniques which
do not work well with server programs, where multiple requests are
handled in parallel. For example, instrumenting web servers with
print/logging statements can often result in voluminous log output
with interleaved streams of messages.

otrace takes a different approach to debugging that relies less on
sequential operations. Its features including taking "snapshots"
of variables for tracing, "tagging" objects for tracking across
different method invocations, and modifying live code
("monkey patching") to insert print statements etc.

otrace maps all the objects in the running program, as well as the
"snapshot" objects, to a virtual filesystem mounted under "/osh".
It provides a shell-like interface, oshell, with commands like
"cd", "ls" etc. that can be used to browse classes, methods, and
instance variables in the virtual filesystem. Tab completion and
simple wildcarding are supported.

This is the first public release of otrace. It can be installed from:

 - Project page: http://info.mindmeldr.com/code/otrace
 - Source: http://github.com/mitotic/otrace
 - License: BSD
 - Version: 0.30

R. Saravanan
PS. Here is a brief excerpt of terminal output from a demo
session, to provide a flavor of oshell command usage:

# Initiate tracing of a method
globals> cd Receive
osh..Receive> pwd
osh..Receive> ls -lf resp*
respond   = <unbound method Receive.respond>
osh..Receive> trace respond
Tracing Receive.respond

More information about the Python-announce-list mailing list