2013-06-13 1 views
1

У меня есть родительский процесс, вызывающий его дочерний элемент. Я поместил import pdb; pdb.set_trace() в код дочернего процесса.pdb не отвечает после вызова pdb.set_trace()

Когда я запускаю родителя с python -m pdb parent.py, он замерзает. Отладчик не отвечает на любую команду, которую я вводил. Но когда я ударил quit или continue, он заканчивает код.

Похоже, что pdb работает, но не производит никакого вывода.

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

Сейчас он перестает отвечать.

По следам, которые я получил после перерыва, он стоял на линии сразу после звонка pdb.set_trace().

>>>>>>>>>>>>>[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: 
+0

ли вы на самом деле начать реальный 'process' для запуска' child.py' или вы просто импортировать его как модуль? Возможно, вы можете отправить код, который вызывает 'child.py', из вашего сценария' parent.py'. – BergmannF

+0

Что произойдет, если вы * не запустите его через отладчик? Это тоже висит? – doctorlove

+0

@Gjallar на самом деле это называется через 'os.system (« child.py »)' – astronaut

ответ

1

На самом деле проблема заключалась в том, что мой код был перенаправлять sys.stdout в файл журнала

+0

LOL. На самом деле, выбирая причину, вероятно, не такая ошибка uncommun. –