我想知道是否有办法用多个参数启动 pdb。
目前我知道我可以做到这一点:
python -m pdb script.py
然后手动设置断点,使用:
(Pdb) break
(Pdb) break 2
Breakpoint 1 at /home/ozn/test2.py:2
(Pdb) break 3
Breakpoint 2 at /home/ozn/test2.py:3
(Pdb) break
我还可以插入:
pdb.set_trace() (or with ipdb.set_trace()
在不同的行中(这可以通过 vim 中的 python-mode 之类的东西来缓解)。但是,如果我采用这种方法,例如
# note: break points from python-mode in vim
print "hello "
a = 1
import ipdb; ipdb.set_trace() # XXX BREAKPOINT
a =+1
import ipdb; ipdb.set_trace() # XXX BREAKPOINT
print a
i = 9
break
在 inside 时,我无法使用命令列出所有断点pdb
。这是示例:我运行文件,它产生输出并切换到pdb
会话,但命令break
为空:
[2] ozn@deboz:~ $ python 1.py
hello
> /home/ozn/1.py(4)<module>()
3 import ipdb; ipdb.set_trace() # XXX BREAKPOINT
----> 4 a =+1
5 import ipdb; ipdb.set_trace() # XXX BREAKPOINT
ipdb> list
1 print "hello "
2 a = 1
3 import ipdb; ipdb.set_trace() # XXX BREAKPOINT
----> 4 a =+1
5 import ipdb; ipdb.set_trace() # XXX BREAKPOINT
6 print a
7
8 i = 9
ipdb> break
ipdb>
理想情况下,我想像这样启动 pdb:
python -m pdb script.py b 2 b 3
当在里面时,提示应该这样做:
(Pdb) break
(Pdb) break 2
Breakpoint 1 at /home/ozn/test2.py:2
(Pdb) break 3
Breakpoint 2 at /home/ozn/test2.py:3
(Pdb) break
或者,我很乐意在vim
运行带有一些断点的 python 模式时从内部运行我的脚本。现在,它只是挂起。<lead>r
意思是,如果我在代码中有断点时按下,它会挂起,或者在最好的情况下会产生一些像这样的垃圾:
~
~
~
~
~
~
~
Code running.> /home/ozn/1.py(4)<module>()
3 import ipdb; ipdb.set_trace() # XXX BREAKPOINT
----> 4 a =+1
5 import ipdb; ipdb.set_trace() # XXX BREAKPOINT
ipdb>
将断点设置为时import pdb; pdb.set_trace()
,vim 完全挂起并产生以下消息:
Code running.
问题:
- 可以更好地配置我的 vim python-mode 以使其与断点一起运行吗?
- 您知道运行“调试脚本”或使用多个参数启动 pdb 的方法吗?奖励问题:
- 插件的任何替代品
vdebug
?