pdb怎么调试python_如何在用pdb调试python时更改值?

我想运行pdb,单步执行代码,并在某个时刻更改由某个名称指向的值。所以我可能想更改名为“stationLat”的值。但我似乎做不到。举个例子:>>> import extractPercentiles

>>> import pdb

>>> pdb.run( "extractPercentiles.extractOneStation()" )

> (1)()->None

(Pdb) s

--Call--

> /scratch/extractPercentiles.py(96)extractOneStation()

-> def extractOneStation() :

(Pdb) tbreak 132

Breakpoint 3 at /scratch/extractPercentiles.py:132

(Pdb) c

Deleted breakpoint 3

> /scratch/extractPercentiles.py(132)extractOneStation()

-> stationLon = float(stationLoc[3])

所以现在我在一个地方,我想改变stationlat的值。Pdb似乎允许我将stationLat设置为一个新值,但当我检查该值时,它保持不变:(Pdb) stationLat

-34.171100000000003

(Pdb) stationLat = -40

(Pdb) stationLat

-34.171100000000003

(Pdb) !stationLat = -40

(Pdb) stationLat

-34.171100000000003

(Pdb)

你看我试过用!同样,没有成功。

pdb手册上说我应该能够改变变量:

调试器无法识别的命令被假定为Python语句,并在被调试程序的上下文中执行。Python语句也可以以感叹号(!)作为前缀。这是一种检查正在调试的程序的强大方法;甚至可以更改变量或调用函数

这是一个范围问题吗?这和我开始pdb的方式有关吗?我尝试了嵌入的“pdb.set_trace”习惯用法,得到了相同的结果。

谢谢你的阅读。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值