此前文章《最简单方法远程调试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__ == "__main__":

main_process()

#!/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__ == "__main__":

main_process()

完成,即可同时调试父子进程。另外pdb()和server()是可以接受addr、port参数的,默认用了addr=’localhost’, port=18964地址端口来通讯,如果需要同时调试N多个子进程,或者跨网络调试,需要使调试端跟服务端的参数一致。

可直接下载文件放到需要调试的代码同一目录使用,或者使用easy_install直接安装到python模块内(需要svn支持):

easy_install http://ptcoding.googlecode.com/svn/trunk/rm_pdb

easy_install http://ptcoding.googlecode.com/svn/trunk/rm_pdb

python pdb调试多进程_PDB远程调试Python多进程子程序相关推荐

  1. pycharm 远程调试图文_pycharm远程调试openstack的图文教程

    今天我要讲如何远程调试openstack.首先我们使用的工具是Pycharm. 1.首先介绍一下环境 我的openstack是使用rdo一键安装的,安装在一台centos的虚拟机上,虚拟机的IP地址是 ...

  2. java 远程调试超时_java 远程调试

    参考: 1. 远程调试普通程序 程序打成 jar 包,使用命令行执行: java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport= ...

  3. 移动应用调试之Inspect远程调试

    移动应用调试之Inspect远程调试 一.准备工作 chrome浏览器,建议最新版本 如果你点击inspect打开的DevTools窗口一片空白,且刷新无效时,那极有可能是由于被墙的缘故. 二.Ins ...

  4. 【GDB调试-5】远程调试

    文章目录 一.gdbserver 1.1 安装gdbserver 1.2 配置防火墙 二.gdbserver的启动与连接 2.1 gdbserver启动 2.2 gdb连接 三.gdb远程调试stm3 ...

  5. 一路踩坑,被迫聊聊 C# 代码调试技巧和远程调试

    一:背景 1. 讲故事 每次项目预交付的时候,总会遇到各种奇葩的坑,我觉得有必要梳理一下以及如何快速解决的,让后来人避避坑,这篇就聊聊自己的所闻所遇: 我去,本地环境代码跑的哧溜,上了测试环境出问题 ...

  6. java 远程调试 端口_java – 远程调试:在端口8787上没有连接到OpenJDK 11上的Wildfly 14...

    我正在尝试将我的调试器连接到在Open JDK 11上运行的Wildlfy. 尽管Wildfly说: Listening for transport dt_socket at address: 878 ...

  7. 【调试】——idea远程调试服务器上的代码

    前提 有些时候难免会出现一些线上问题,可能就需要远程调试服务器上的代码,依次快速定位错误代码,进行改正.小编最近通过idea进行了远程代码调试,特此记录一下,希望可以帮需要的朋友. 步骤 1.保证本机 ...

  8. java 远程调试 端口_JAVA远程调试

    1.远程端启动必须添加jvm参数 -Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port} 其中de ...

  9. java远程调试_JAVA的远程调试方法

    首先,JAVA自身支持调试功能,并提供了一个简单的调试工具--JDB,类似于功能强大的GDB,JDB也是一个字符界面的调试环境,并支持设置断点,支持线程线级的调试. JAVA的调试方法如下: 1.首先 ...

最新文章

  1. R语言基于Bagging算法(融合多个决策树)构建集成学习Bagging分类模型、并评估模型在测试集和训练集上的分类效果(accuray、F1、偏差Deviance):Bagging算法与随机森林对比
  2. Python基础-第二天
  3. c语言中和if语句作用相似的运算符,南开18秋学期(1709、1803、1809)《C语言程序设计》在线作业【答案】...
  4. python基础教程:filter(),map()函数用法
  5. MTK 添加自定义PMS权限 Patch
  6. Javascript/Jquery——简单定时器
  7. 思考:固态硬盘的普及,是否影响到了存储引擎的设计?
  8. element表格实现树形全选_很实用!word中全选的快捷键介绍及使用方法
  9. 多线程_C# 多线程技术
  10. mysql 8 启动失败(本地计算机上的mysql服务启动后停止。某些服务再未由其他服务或程序使用时将自动停止)
  11. [开源工具] 串口转wifi —— 两个串口之间通过网络进行通信
  12. 2022年8月11日:使用 ASP.NET Core 为初学者构建 Web 应用程序--使用 ASP.NET Core 控制器创建 Web API(没看懂,需要再看一遍)
  13. 全球及中国装配式建筑行业发展现状及应用价值分析报告2021版
  14. 达沃时代的VNAS为NAS使用提供一种新可能
  15. libnativehelper 加载库失败
  16. 面试:Zookeeper常见11个连环炮
  17. 2021年1月编程语言排行榜(C语言又第一名)
  18. echarts + echarts-gl - 使用geo3d + map3d + scatter3D做3d地图
  19. 企业网三层架构的搭建--Cisco多层交换网络
  20. oracle通过表空间文件进行数据库恢复,oracle通过DBF恢复数据

热门文章

  1. 有信号但是无法连接到移动网络连接服务器,手机打电话显示无法连接到移动网络怎么回事?...
  2. 数据学习(十四)-方差分析与试验设计
  3. python笛卡尔坐标系_THREE笛卡尔右手坐标系详解
  4. Arduino开发教程
  5. 能领取拼多多优惠券的微信小程序
  6. html 标签英文全称,html标签英文全称
  7. Java 时间相关 获取某月的某一天
  8. 纽约大学石溪分校计算机科学,纽约州立大学石溪分校的主要基本信息介绍
  9. android投影到创维电视,创维电视怎么投屏?图文讲解安卓和苹果手机投屏到创维电视方法...
  10. 怎么安装vs2013配套的VASSISTX番茄助手