On Mon, 16 Aug 2010 08:17:20 -0700, Steve Ferg wrote: > In this little script: > > <pre> > import pdb > pdb.set_trace() > def main(): > xm = 123 > print("Hello,world!") > main() > </pre> > > When I run this, I use pdb to step through it until I reach the point in > main() where the xm variable has been initialized, and then I try to use > pdb to reset the value of xm, and I can't. > > Does anybody know why? > > As I understand the documentation, > http://docs.python.org/library/pdb.html I *should* be able to do this. > > [!]statement > Execute the (one-line) statement in the context of the current stack > frame. > > Is there something about "in the context of the current stack frame" > that I don't understand? Or is it a bug (or a limitation) in pdb?
I think this may be the issue raised in bug 5215 (http://bugs.python.org/issue5215), committed in r71006. Displaying a changed variable using the "p" command reverts the variable to its previous value. If you try pdb.set_trace() def main(): xm = 123 print("Hello,world!") print xm and change xm before it's printed (but do not display using "p") it seems to work as expected. Hope that helps, Kev -- http://mail.python.org/mailman/listinfo/python-list