I am debugging a code in Python using Pdb:
a = [12, 3, 4, 10, 23, 1]
def compute(x):
return 2 * x
for i in a:
b = compute(i)
To trace the value of a variable inside the loop, I set a breakpoint at the first line of the loop body and use the continue command to move to the next breakpoint, then use print command to inspect the variable:
$ python -m pdb program.py
> /tmp/program.py(1)<module>()
-> a = [12, 3, 4, 10, 23, 1]
(Pdb) l
1 -> a = [12, 3, 4, 10, 23, 1]
2
3
4 def compute(x):
5 return 2 * x
6
7
8 for i in a:
9 b = compute(i)
[EOF]
(Pdb) b 9
Breakpoint 1 at /tmp/program.py:9
(Pdb) c
> /tmp/program.py(9)<module>()
-> b = compute(i)
(Pdb) p i
12
(Pdb) c
> /tmp/program.py(9)<module>()
-> b = compute(i)
(Pdb) p i
3
(Pdb) c
> /tmp/program.py(9)<module>()
-> b = compute(i)
(Pdb) p i
4
(Pdb)
Is there any way to automatically print the variable's value every time execution stops at the breakpoint?