启动线程中的错误调试器
我使用以下技巧让调试器启动时出错错误时自动启动python调试器
任何想法如何使这也适用于新创建的线程中发生的错误? 我正在使用线程池,像http://code.activestate.com/recipes/577187-python-thread-pool/
我会说在每个线程的运行开始()注入代码。
如果你不想改变这个代码,你可以像这样做monkeypatch:
Worker.run = lambda *a: [init_pdb(), Worker.run(*a)][-1]
或者像这样:
def wrapper(*a):
# init pdb here
Worker.run(*a)
Worker.run = wrapper
如果你想要真正的核心,你可以在导入其他模块之前重写threading.Thread.start或者threading.Thread,例如:
class DebuggedThread(threading.Thread):
def __init__(self):
super(DebuggedThread, self).__init__()
self._real_run = self.run
self.run = self._debug_run
def _debug_run(self):
# initialize debugger here
self._real_run()
threading.Thread = DebuggedThread
链接地址: http://www.djcxy.com/p/39407.html
上一篇: Starting debugger on errors in threads
下一篇: How to turn off the Eclipse code formatter for certain sections of Java code?