Python pdb不';在pdb.set_trace()调用之后,没有响应

Python pdb不';在pdb.set_trace()调用之后,没有响应,python,debugging,pdb,Python,Debugging,Pdb,我让父进程调用它的子进程。我把导入pdb;pdb.set_trace()到子进程代码中 当我用python-mpdb parent.py启动父级时,它被冻结了。调试器不响应我键入的任何命令。但当我点击退出或继续时,它确实会退出代码 看起来pdb可以工作,但不产生任何输出 $ python -m pdb parent.py n -m pdb parent.py > d:\scripts\parent.py(53)<module>() -> ''' (Pdb) c 实际上,

我让父进程调用它的子进程。我把
导入pdb;pdb.set_trace()
到子进程代码中

当我用python-mpdb parent.py启动父级时,它被冻结了。调试器不响应我键入的任何命令。但当我点击
退出
继续
时,它确实会退出代码

看起来pdb可以工作,但不产生任何输出

$ python -m pdb parent.py
n -m pdb parent.py
> d:\scripts\parent.py(53)<module>()
-> '''
(Pdb) c

实际上,问题是我的代码正在将
sys.stdout
重定向到日志文件

您实际上是在启动真正的
进程
来运行
child.py
还是只是将其作为模块导入?也许您可以发布从
parent.py
脚本调用
child.py
的代码。如果不通过调试器运行它,会发生什么?它也挂起了吗?@Gjarlar实际上是通过
os.system(“child.py”)
@doctorlove调用的,不,它没有挂起up@astronaut好的,不幸的是,我只能在我的Linux机器上测试你的szenario,我无法重现错误-也许你可以尝试使用更现代的
子进程
模块(),看看是否有效。LOL。事实上,这可能不是一个不寻常的错误。
>>>>>>>>>>>>>[2013.06.13-10:02:06] : accessed by child.py
Traceback (most recent call last):
File "child.py", line 40, in <module>
    sys.stderr = open(Definition_h.ErrLog, 'a', 0, encoding=Definition_h.utf8)
File "d:\scripts\Definition_h.py", line 863, in unicodeOpen
    def unicodeOpen(*args, **kwargs):
File "C:\Program Files (x86)\Python 2.5.4\lib\bdb.py", line 50, in trace_dispatch
    return self.dispatch_call(frame, arg)
File "C:\Program Files (x86)\Python 2.5.4\lib\bdb.py", line 79, in dispatch_call
    self.user_call(frame, arg)
File "C:\Program Files (x86)\Python 2.5.4\lib\pdb.py", line 134, in user_call
    self.interaction(frame, None)
File "C:\Program Files (x86)\Python 2.5.4\lib\pdb.py", line 187, in interaction
    self.cmdloop()
File "C:\Program Files (x86)\Python 2.5.4\lib\cmd.py", line 148, in cmdloop
    import readline
KeyboardInterrupt: !!!<unprintable KeyboardInterrupt object>
Error in sys.excepthook: