如何用输入pdb Python代码?

时间:2010-05-04 09:10:13

标签: python

我正在使用pdb调试Python代码。 代码需要从stdin输入,如:

python -m pdb foo.py < bar.in

然后pdb将接受bar.in作为命令。 如何告诉pdb输入是用于foo.py而不是用于pdb?

2 个答案:

答案 0 :(得分:3)

嗯,这是对Aaron答案的调整,但我认为它错过了你想在某个时候进行交互式调试的重点,对吧?这有效,但程序会在你有机会调试之前退出。

(echo cont;cat bar.in) | python -m pdb foo.py

我认为如果您可以修改foo.py,请执行import pdb然后在foo.py的有趣位置执行pdb.set_trace(),然后只运行python foo.py而不使用-m pdb并给它吧。通常

python foo.py < bar.in

答案 1 :(得分:1)

一种重要的工作是将cont放在bar.in的开头:

cont
one
two
three
four


aaron@ares ~$ python -m pdb cat.py < bar.in 
> ~/cat.py(1)<module>()
-> import sys
(Pdb) one
two
three
four
The program finished and will be restarted
> ~/cat.py(1)<module>()
-> import sys
(Pdb)