Python-pdb skip code (as in “not execute”)

南楼画角 提交于 2020-08-22 07:31:13

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!