问题
Is there a way to skip a line or two altogether in pdb?
Say I have a pdb session:
> print 10
import pdb; pdb.set_trace()
destroy_the_universe() # side effect
useful_line()
And I want to go straight to useful_line() WITHOUT invoking pdb() once again, or destroying the universe. Is there a way to skip (i.e. not execute code) what is between
print 10 and useful_line()?
回答1:
Use the j
/jump
command:
test.py contains:
def destroy_the_universe():
raise RuntimeError("Armageddon")
def useful_line():
print("Kittens-r-us")
print(10)
import pdb; pdb.set_trace()
destroy_the_universe()
useful_line()
Then:
C:\Temp>c:\python34\python test.py
10
> c:\temp\test.py(9)<module>()
-> destroy_the_universe()
(Pdb) l
4 def useful_line():
5 print("Kittens-r-us")
6
7 print(10)
8 import pdb; pdb.set_trace()
9 -> destroy_the_universe()
10 useful_line()
[EOF]
(Pdb) j 10
> c:\temp\test.py(10)<module>()
-> useful_line()
(Pdb) c
Kittens-r-us
来源:https://stackoverflow.com/questions/27741387/python-pdb-skip-code-as-in-not-execute