question about pdb assignment statements
Kev Dwyer
kevin.p.dwyer at gmail.com
Mon Aug 16 18:37:55 EDT 2010
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
More information about the Python-list
mailing list