display expression:每次更改时打印出表达式的值。这对于监视在循环中更改的变量的值很有用。因此,假设以下是代码:
for i in range(100):
for j in range(100):
a=f(i,j)
我知道对于i和j的某些值执行a=f(i,j)
有问题。然后,如何使用pdb模块中的display命令找出i和j不起作用时的值?我想当你使用display命令时,它会自动显示i和j的值,对吧?我是否还需要从pdb模块中组合c命令和b命令?非常感谢您的时间和关注。
答案 0 :(得分:0)
display
设置"观看",以便每次执行都停止(无论是通过填写next
,step
还是until
,或打破continue
),如果值已更改,它将打印一条显示旧值和新值的消息。
由于您知道f
函数存在问题,因此最简单的解决方案是在该函数上放置break
,并设置该范围内输入的显示。由于您没有向我们展示f
,我不知道在该级别调用输入变量是什么,但它可能不会成为" I"和" j",所以适当地设置显示。
当我使用n
或s
或c
逐步执行涉及循环的代码时,我发现显示最有用。它为我跟踪变量,使我免于print
我感兴趣的变量。如果您知道您的问题在f中,那么您必须在那里单步执行代码你自己,检查所有有趣的陈述中的所有变量。如果您发现自己重复检查变量,则使用display
。