0

有没有办法在扭曲的应用程序中运行交互式调试器?

  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

4

1 回答 1

0

您只需要将标准输入和标准输出附加到有用的东西上。确保您没有守护进程并告诉日志系统不要使用 stdio。

或者,您可以使用不需要标准输入和标准输出的调试器。例如,使用pudb

import pudb.remote
pudb.remote.set_trace()

另外,您没有问,但多处理和 Twisted 大多不兼容。非常小心地让它们可靠地一起工作是可能的——但通常有更简单的方法来完成同样的事情。

于 2017-02-03T22:56:05.930 回答