有没有办法在扭曲的应用程序内运行交互式调试器?
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
你只需要将 stdin 和 stdout 附加到有用的东西上。 确保你没有守护进程,并告诉日志记录系统不要搞砸stdio。
或者,您可以使用不需要标准输入和标准输出的调试器。 例如,对于pudb
:
import pudb.remote
pudb.remote.set_trace()
另外,你没有问,但多处理和扭曲大多是不兼容的。 让它们非常小心地可靠地协同工作是可能的 - 但通常有更简单的方法来完成同样的事情。