Hi, I noticed that pydb.pm() also fails in python2.5 when invoked on that same example (seems like also trying to access a nonexistent attribute/variable).
Is this known to you as well/was it fixed? On Jan 25, 9:15 pm, [EMAIL PROTECTED] (R. Bernstein) wrote: > I'd like to change my assessment of whether the problem encountered is > a pdb bug or not. It could be a bug in Python. (Right now it is only > known to be a bug in version 2.5.) > > For a given traceback t, the question is whether t.tb_frame.f_lineno > can ever be different from t.tb_lineno. > > Still, for now in pydb CVS, I've worked around this by checking. > > [EMAIL PROTECTED] (R. Bernstein) writes: > > "Rotem" <[EMAIL PROTECTED]> writes: > > > > Hi, > > > > Maybe I'm repeating a previous post (please correct me if I am). > > > > I've tried the following code in python 2.5 (r25:51908, Oct 6 2006, > > > 15:22:41) > > > example: > > > > from __future__ import with_statement > > > import threading > > > > def f(): > > > l = threading.Lock() > > > with l: > > > print "hello" > > > raise Exception("error") > > > print "world" > > > > try: > > > f() > > > except: > > > import pdb > > > pdb.pm() > > > > This fails because pdb.pm() attempts to access sys.last_traceback which > > > is not assigned. > > > Recent releases of pydb (http://bashdb.sf.net/pydb) don't suffer this > > problem. (But see below.) > > > > Trying: > > > pdb.post_mortem(sys.exc_traceback) > > > > Yields the following: > > > > test.py(9)f() > > > -> print "world" > > > (Pdb) > > > > the 'w' command yields a similar output, which implies that the > > > exception was thrown from the wrong line. > > > the traceback module is better, yielding correct results (displays line > > > 8 instead of 9). > > > > Has anyone encountered this behavior? > > > Yes, this seems to be a bug in pdb. It is using the traceback's f_line > > instance variable rather than the tb_lineno instance variable. I guess > > these two values are usually the same. In fact, I haven't been able to > > come up with a Python 2.4 situtation where they are different. (If > > someone can, I'd appreciate it if you'd send me a small example so I > > can put it in the pydb regression tests.) Even in 2.5, it's kind of > > hard to get a case where they are different. If I remove the "with", > > the problem goes away. > > > It was also bug in pydb, but I've just committed in CVS the fix for > > this > > > > is pdb broken? > > > Best as I can tell pdb isn't all that well maintained. (Had it been, I > > probably wouldn't have devoted the time to pydb that I have been.) > > > > I get similar results for larger/more complex pieces of code. > > > > Thanks in advance, > > > > Rotem -- http://mail.python.org/mailman/listinfo/python-list