|
|
|
|
 请教一个pdb的问题! - zjbdamo [ 2005-10-14 15:01 | 287 byte(s)]
 Re: 请教一个pdb的问题! - passworld [ 2005-10-14 18:31 | 305 byte(s)]
 Re: 请教一个pdb的问题! - zjbdamo [ 2005-10-17 10:31 | 774 byte(s)]
 Re: 请教一个pdb的问题! - passworld [ 2005-10-17 11:34 | 126 byte(s)]
 Re: 请教一个pdb的问题! - passworld [ 2005-10-17 12:02 | 215 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
有个问题不明白,希望能得到前辈们的指点,谢谢!
1,使用pdb时怎么改变一个在调试代码的变量值?我试了一下!变量得值没被改变。
如果不能改变变量的值,pm()和post_mortem(t)有什么用?如果仅是为了看stack.
一般说来出问题的时候解析器已经给出了问题现场的stack了。
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
应该可以改变,你怎么试的?你要是在 exception 发生以后再改值,那是没什么意义的,程序最多是重起,是不可能跳回 exception 以前再继续跑的。你要想改值,把你的断点设在 exception 发生以前。
pm 不但可以看 backtrace,还可以看具体变量值,让你知道当时大家都在什么状态。
|
|
|
----
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
我的测试代码test.py
#!/usr/bin/env python
def run1():
print '++++++++++'
print '__________'
print '=========='
print '@@@@@@@@@@'
def echo(arg):
print arg
print "hello2"
for i in range(0,5,1):
print i
def main():
run1()
echo("hello")
if __name__ == '__main__':
main()
启动python解释器后执行
import pdb
import test
pdb.runcall(test.main)
然后当代码运行到
for i in range(0,5,1):
print i
循环的时候我想改变i的值,于是
!i=3
可是i的值并没有改变。
|
|
|
[Original]
[Print]
[Top]
|
|
|