2017-02-03 25 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 –