2017-02-03 92 views
0

有没有办法在扭曲的应用程序中运行交互式调试器?如何调试python-twisted ipdb

import ipdb;ipdb.set_trace() 

这个决心:

7-02-03T22:25:49+0100 [stderr#error] Traceback (most recent call last): 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap 
2017-02-03T22:25:49+0100 [stderr#error]  self.run() 
2017-02-03T22:25:49+0100 [stderr#error] File "bo/OLA_test.py", line 110, in run 
2017-02-03T22:25:49+0100 [stderr#error]  self.wrapper.Run() 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/dist-packages/ola/ClientWrapper.py", line 278, in Run 
2017-02-03T22:25:49+0100 [stderr#error]  self._ss.Run() 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/dist-packages/ola/ClientWrapper.py", line 197, in Run 
2017-02-03T22:25:49+0100 [stderr#error]  self._CheckTimeouts(now) 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/dist-packages/ola/ClientWrapper.py", line 222, in _CheckTimeouts 
2017-02-03T22:25:49+0100 [stderr#error]  event.Run() 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/dist-packages/ola/ClientWrapper.py", line 67, in Run 
2017-02-03T22:25:49+0100 [stderr#error]  self._callback() 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/bdb.py", line 49, in trace_dispatch 
2017-02-03T22:25:49+0100 [stderr#error]  return self.dispatch_line(frame) 
2017-02-03T22:25:49+0100 [stderr#error] File "/usr/lib/python2.7/bdb.py", line 68, in dispatch_line 
2017-02-03T22:25:49+0100 [stderr#error]  if self.quitting: raise BdbQuit 

与 扭曲== 16.6.0

回答

0

你只需要保持stdin和stdout连接到一些有用的东西。确保不要守护进程,并告诉日志记录系统而不是与stdio连接。

或者,您可以使用不需要stdin和stdout的调试器。例如,pudb

import pudb.remote 
pudb.remote.set_trace() 

另外,你也没问,但多和扭曲的大多是不兼容的。有可能让他们以可靠的方式可靠地工作,但通常有更简单的方法来完成同样的事情。

+0

感谢您的回复,请解释他们为什么不相容?我已经使用它们来共享不同进程之间的信息,并且该脚本自124天开始运行。 – summer

+0

通过搜索“[twisted] [multiprocessing]”,您可以找到关于该主题的一堆问题。这里有一个特别的:https://stackoverflow.com/questions/11272874/is-twisted-incompatible-with-multiprocessing-events-and-queues –