Python远程调试工具的设计与实现

来源 :东南大学 | 被引量 : 0次 | 上传用户:cenghao
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着软件工程技术迅猛发展,软件规模也日益庞大,消除软件缺陷成为软件工程中一项极为繁重的任务。软件调试就是定位并解决软件缺陷的过程。为了保证复杂的软件系统稳定运行,研发人员需要对系统各功能进行详细调试,调试工作会占用大量项目时间。当遇到无法在本地启动程序、没有项目源代码、程序错误不在本地等情况,研发人员需要远程调试程序。传统的远程调试工具都是将源代码下载到本地再编译,既无法还原错误现场,也不能适应无源码的生产环境。实习企业使用Python语言作为脚本开发了所有的游戏客户端和服务器端。为了提升大型Python系统的调试效率,适应生产环境的调试,企业提出了研发一款Python远程调试工具的需求。调试工具要求可以图形化调试、远程连接调试和数据监控,以适应生产环境的调试要求。本文基于Python的工作原理,设计了Python远程调试工具。本工具的设计主要分为三个模块:调试模块通过与GC直接对话,实现了内存解析和函数调试等功能,该模块支持不断点调试,能够保证程序正常运行下的调试;通信模块通过架构设计,实现了集群连接、多协议通用连接,该模块能够连接生产环境下以集群方式部署的程序,多协议的连接能兼容大多数Python系统环境;监控模块基于TSDB数据库实现了系统信息实时上报与监控,该模块用TSDB存储数据,既能保证容量,又能满足一定实时性。最后本文将工具和Python测试程序分别部署到Windows和Linux环境下,对设计实现的Python远程调试工具的连接通用性、调试的功能性进行了测试。测试结果表明本工具达到了设计目标。
其他文献
准确提取农作物收割导航路径线对于实现精准农业日趋重要,导航路径线不仅能够为智能稻麦收获机的自动驾驶系统提供路径信息,也可以为收获机的测产系统提供实时收割宽度。针对智能稻麦收获机导航路径检测易受干扰和可靠性差的问题,分析收获机的复杂工作环境特征,建立智能稻麦收获机导航线视觉检测模型,提出基于鸟瞰图导航线视觉检测区域图像分割的收割导航线检测与跟踪方法,解决了智能稻麦收获机导航系统中存在的准确高效获取相
在通信企业信息化建设的过程中,局点业务的运维管理占据着重要位置。并且,随着业务的数量急剧增长和业务的复杂度不断上升,通信企业对局点运维系统的依赖程度也越来越高。因此,对局点业务进行运维管理是保证业务正常运行的关键。一个良好的局点运维系统能够把局点业务的运行风险度降至最低,并提高通信企业的运维管理效率。近年来,伴随着互联网技术的迅猛发展,针对通信企业局点业务开发的运维管理系统也越来越多。但是,这些系
我国频发的各类自然灾害对道路交通的破坏非常巨大,建立完备的道路交通救援体系是挽救人民生命财产损失的重要手段。应急救援系统重在演练,但是在真实的演练环境不易搭建或代价巨大的条件下,通过创建道路应急抢通三维虚拟场景来演练救援队伍则势在必行。本文从三维场景的实际应用出发,结合虚拟现实技术、GIS(地理信息系统)技术以及数字高程模型的应用,创建了道路应急抢通三维虚拟场景,实现了灾害条件下对道路应急抢通装备
随着现代信息社会的加速发展,信息类型逐渐多样化,对于不同的信息呈现方法的需求也日益增强。多视图协调平行展示是基于单视图无法满足复杂程度越来越高的信息类型有效呈现的现实条件下,逐渐出现作为帮助用户观测数据的一种信息呈现方式。本文通过眼动追踪技术获取的眼动指标及其参数定量化地评估分析色彩视觉视觉线索对用户的视觉注意力的引导作用以及对于用户心智模型构建的调节作用,为多视图平行协调展示的信息表征与呈现方式
随着计算机技术的高速发展,各类软件和应用程序的开发要求和开发难度不断增大,API(Application Programming Interface,应用程序编程接口)推荐技术的研究和应用就具有很大的研究潜力和研究价值。当前软件开发的效率和软件开发的质量很大程度上取决于API方法的推荐结果,它能够快速的给开发人员提供准确的API方法来交付功能丰富的软件,并且在一定程度上保障了方法的实用性,极大的节
场景理解是指机器通过传感器分析其周边区域的过程,需要解决的任务包括深度估计、场景分类、目标检测及跟踪等。3D目标检测作为场景理解中的一项核心任务,是确定目标是否存在、确定目标位置与大小的过程。3D目标检测作为自动驾驶领域需要解决的核心任务之一,是自动驾驶汽车能够安全行驶的必要条件。近年来深度学习在该领域有着广泛应用,但由于多种传感器获取的是不同模态的数据,每种都有其优缺点,所以如何将多模态数据良好
随着云计算、大数据的兴起和各种分布式系统的应用,并发编程也变得越来越流行。然而并发程序编写容易出错,数据竞争就是并发程序中典型的缺陷,它是指多个线程在没有经过同步的情况下同时对共享内存变量进行了访问,并且其中至少有一个写访问。数据竞争在并发程序中经常出现且不易觉察、隐藏较深、难以复现。为了保证系统稳定安全地运行,实习公司提出要设计一款检测Java并发程序中数据竞争问题的检测工具。本文在阅读大量国内
如何提高软件开发效率、保证软件质量和降低软件开发成本是软件工程领域的三个核心问题。在互联网发展的大趋势下,开源软件也逐渐流行起来,网络上出现了大量高质量的源代码。高效地重用这些代码成为提高软件开发效率的有效途径之一。而在软件重用方面,代码搜索已经成为软件开发者日常开发过程中的频繁活动;此外,代码搜索技术也经常作为其他软件开发技术的重要支撑技术(如代码推荐技术和代码补全技术等)。传统的代码搜索方法主
在互联网时代,互联网公司为了适应瞬息万变的市场,需要加快软件迭代的速度。为了确保产品质量,在软件发布前需要进行代码覆盖率测试。随着软件不断迭代,软件规模和测试用例数变大,迭代新增代码量占比变少,测试团队花费大量人力追求很高的全量代码覆盖率不再有意义。针对在软件快速迭代背景下代码覆盖率测试效率低,无法有效感知变更代码的覆盖情况的问题,本论文结合实习公司的基于敏捷测试理念的代码覆盖率测试流程,研究并实
鉴于桥梁安全事故的严重性,以及桥梁工程在国家建设和人民生活中的重要作用,桥梁健康监测受到研究人员的高度重视。但是随着桥梁监测技术的发展,大型桥梁上各种设备收集到的数据总量变得异常庞大。如何有效利用这些数据,成为该领域中的重要问题。本文提出将Spark分布式计算技术应用于桥梁健康监测系统中,使其具有处理海量监测数据的能力,可以快速地进行离线数据分析与建模。实验基于南京大胜关长江大桥的真实数据。论文主