Python-PDB自动引发BdbQuit

时间:2017-12-05 19:04:15

标签: python shell

我一直在使用pdb.set_trace()在我的代码中设置一些断点,并且总是很流畅。

我有一个在循环中运行python脚本的shell脚本:

cat $file1 | (
#read something from file1
while ... 
do
   if ... then
      cat $file2 | (
      # read something from file2
      while ...
          do 
               python test.py
               # read something from file2
          done)
   fi
   #read something from file1
done)

假设test.py只是一个简单的hello世界。我把pdb.set_trace()放在我的python脚本中。当我在循环外部运行代码时,只需通过python test.py,一切正常。但是,当我执行.sh脚本时,它到达pdb.set_trace()的那一刻,它会引发一个BdbQuit和我的python脚本。

我无法意识到问题所在。如果有人能帮我解决这个问题,我真的很感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

您正在while循环中重定向 stdin

cat $file1 | while ...

交互式pdb提示也会从 stdin 读取,但由于它已被重定向,所以它只是从该文件中获取输入。

在这种情况下,最简单的解决方案就是使用类似remote-pdb的内容,这会打开一个网络连接,您可以使用以下方式连接到该网络连接。 telnetnc