此前文章《最简单方法远程调试Python多进程子程序》利用了Unix管道文件以及简单的bash来配合调试多进程子程序,但也因此没法跨平台支持windows下的子进程调试,这次简单使用socket接口写了个模块,利用类文件对象传给Pdb的构造,因此不仅可以跨平台,甚至跨机器,跨网络调试都没问题(通常不会这么BT的)。
使用方法,用回之前的例子:
先在终端运行调试服务端:
python -c "import rm_pdb; rm_pdb.server()"
python -c "import rm_pdb; rm_pdb.server()"
在另外的终端运行这个文件:
multiproces_debug.py
#!/usr/bin/python
import multiprocessing
import pdb
import rm_pdb
def child_process():
print "Child-Process"
rm_pdb.pdb().set_trace()
var = "debug me!"
def main_process():
print "Parent-Process"
p = multiprocessing.Process(target = child_process)
p.start()
pdb.set_trace()
var = "debug me!"
p.join()
if __name__ ==