У меня есть родительский процесс, вызывающий его дочерний элемент. Я поместил 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:
ли вы на самом деле начать реальный 'process' для запуска' child.py' или вы просто импортировать его как модуль? Возможно, вы можете отправить код, который вызывает 'child.py', из вашего сценария' parent.py'. – BergmannF
Что произойдет, если вы * не запустите его через отладчик? Это тоже висит? – doctorlove
@Gjallar на самом деле это называется через 'os.system (« child.py »)' – astronaut