<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
I should have added my version:
Python 2.6.2 (r262:71600, Jun 17 2010, 13:37:45)
[GCC 4.4.1 [gcc-4_4-branch revision 150839]] on linux2