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