Мне было интересно, есть ли способ запустить pdb с несколькими аргументами.запустить python 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()
в разных строках (что облегчается такими вещами, как python-mode в vim). Однако, если я принимаю этот подход, например.
# 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
pdb
, когда внутри. Вот пример: я запускаю файл, он производит продукцию, и переключается на pdb
сессии, но команда break
пуст:
[2] [email protected]:~ $ 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
в качестве альтернативы, я ж oold будет рад запустить мой скрипт с 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()
ВИМ полностью виснет и производит следующее сообщение:
Code running.
вопросы:
- Может ли мой ВИМ питон-режим будет лучше настроен таким образом он ведет себя с точки останова?
- Знаете ли вы, как запустить «отладочные сценарии» или запустить pdb с несколькими аргументами? Бонусные вопросы:
- Любые альтернативы плагину
vdebug
?