System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种用于工业软件的Python代码远程调试方法及系统技术方案_技高网

一种用于工业软件的Python代码远程调试方法及系统技术方案

技术编号:40604365 阅读:4 留言:0更新日期:2024-03-12 22:10
本发明专利技术公开了一种用于工业软件的Python代码远程调试方法及系统,用来满足工业软件在不同运行环境下对内嵌的Python程序进行图形化调试的需求。所述系统包括调试器与脚本解释器,脚本解释器包括本地解释器和远程解释器,其中,本地解释器设置于调试器端,远程解释器设置于工业软件端,调试器与工业软件之间具有通信连接。本发明专利技术提供的技术方案可在运行时对Python脚本解释器进行本地或远程调试。并且,调试器以实时的方式,允许开发者逐行查看程序的执行流程和状态,降低了人为开发的错误几率。此外,程序可以在运行时调试,能够更快地定位和解决问题,减少故障排除的时间。

【技术实现步骤摘要】

本专利技术涉及计算机,尤其涉及一种用于工业软件的python代码远程调试方法及系统。


技术介绍

1、在工业软件使用期间中,用户通常会使用软件自带的“脚本录制”功能保存一系列复杂、繁琐的操作得到初始脚本,然后修改脚本中的参数、变量、循环等内容得到新的操作序列,并通过再次执行新的脚本以自动化执行新的操作序列,提高生产效率。同程序员写编程一样,在脚本修改过程中会不可避免的引入意想不到的错误,常见的解决的方式是通过在程序中启动调试器,设置断点暂停程序的执行来跟踪程序状态。

2、调试器是一种软件工具,用于解决编程中出现的错误或问题。它可以让程序员在执行程序时暂停程序的运行,查看变量的值、内存状态和代码位置等信息,调试器通过使用断点、单步执行、变量检查、堆栈跟踪等技术来帮助开发人员诊断和修复软件错误的工具,极大程度上帮助了开发人员找出问题所在并进行修复。通过调试器程序员能够跟踪并监视目标程序的变化,使用调试器这种方式来监听计算资源已经被广泛应用在各类软件中。

3、然而,在工业软件中进行代码调试可能会出现不兼容特定开发环境或无法在工业软件运行时对其进行代码调试的问题。此外,通常代码调试都在软件开发阶段,程序员自己排查已发现的问题时使用。所以并不适用于在工业软件在用户运行环境上执行时动态地调试软件问题的场景。即现有技术中,更无法在软件运行的同时进行调试工作。并且针对特定平台的依赖性,某些调试器可能只能针对特定的操作系统或开发环境进行工作,这可能导致在不同平台上开发或调试程序时出现问题。同时,倘若当我们的程序部署在远端,程序员就无法在本地获取程序运行状态并进行断点调试,此时远程调试就是必不可少的一部分。

4、因此,本专利技术重点关注工业软件中位于本地或远程的程序(脚本)需要进行调试的需求,同时也将调试器抽离成了一个单独软件模块,使其能够适应于不同开发环境的变化,实现同步调试的问题。即主要是设计一种内嵌在脚本解释器工业软件中进行python代码调试的调试器,同时保证调试器在本地或远程运行时能够捕获程序中的异常和错误,并提供相关的错误信息。


技术实现思路

1、调试器作为开发过程中的重要工具,是程序员调试必不可少的一部分,现有的调试器技术方案主要由两个部分组成,分别是定位问题程序和堆内存储机制。

2、定位问题程序机制主要是通过检测和跟踪代码的执行过程,以找出程序中的错误或异常。并将错误记录到日志中,然后再通过程序中插入日志语句来记录程序的执行过程和状态。同时程序员也可以在关键位置插入日志语句,以便在程序执行时输出相关调试信息。并且通过查看日志文件,这样程序员就可以了解程序的执行路径、变量的值和可能的错误。定位问题程序时,调试器采用了单元测试的方式,用它来验证程序的各个单元(函数、方法等)是否按照预期进行工作。开发人员可以编写测试用例来测试每个单元的输入和输出。调试器可以与单元测试框架集成,以便在测试过程中提供断点调试和日志记录功能。

3、堆内存储机制则主要用来观察和存储程序的内存状态信息,它提供了内存访问规则、同步机制等基础,是调试器的主要内存访问功能。调试器通过堆内存信息来实现变量查看、断点设置、堆栈跟踪等调试功能,从而记录软件程序错误信息。调试器可以使用堆内存机制来设置内存断点,当某个特定内存地址的值发生改变时,调试器会中断程序的执行并通知开发者。为了能够兼容脚本语言会对调试器进行扩展,使其对特定语言和框架的有调试的支持,一些调试器针对特定的编程语言或框架提供了特定的调试功能和支持,帮助程序员解决了与特定环境有关的问题。

4、针对特定的操作系统或开发环境进行调试工作,这可能导致调试器在不同平台上开发或调试程序时出现问题,由于程序员的开发环境、开发平台、操作环境的差异,调试器在不同用户电脑、不同操作系统上执行可能会失败,会出现各种意料之外的难以解决的问题,上述定位软件问题的缺陷在于:

5、1、无法运行时调试。在脚本解释器软件运行时无法动态修改代码,运行时开发人员不能在程序执行过程中修改调试代码,从而进行试验和验证不同的逻辑。如果无法进行运行时调试,开发人员将无法快速地尝试新的解决方案,可能需要重新部署和重新编译代码,导致开发效率降低。运行时调试是开发人员迭代开发和解决问题的重要工具,如果无法进行,开发人员可能需要花费更多的时间来定位和解决问题,也可能使得开发人员无法全面理解代码的执行过程和各个变量之间的交互关系,从而增加理解代码逻辑和调试错误的难度。降低了开发效率。

6、2、无法动态修改代码。运行时调试允许开发人员在程序执行过程中修改代码,进行试验和验证不同的逻辑。如果无法进行运行时调试,开发人员将无法快速地尝试新的解决方案,可能需要重新部署和重新编译代码。

7、3、不能进行远端调试。远程调试可以实时地检查和修改代码,并验证结果。如果无法进行远程调试,开发人员需要依赖现场人员提供反馈和信息,然后根据这些信息进行排查。这可能会导致故障排除过程更加漫长和低效。同样的,可能需要直接接触设备或系统进行调试。这增加了对设备的潜在损害风险,并可能导致数据泄露或其他安全问题。

8、针对现有技术之不足,本专利技术提供了一种用于工业软件的python代码远程调试方法,其包括以下步骤:

9、步骤1:程序部署在远端,首先在本地获取程序运行状态;

10、步骤2:调试器软件启动,并初始化;

11、步骤3:获取要连接端的ip地址,端口号信息到配置文件;

12、步骤4:获取环境信息,查看所用库文件是否成功加载;

13、步骤5:验证连接,下载环境所需的lib库,保持环境一致;

14、步骤6:加载代码,启动脚本解释器;

15、步骤7:开启debug,保持两端同步执行;

16、步骤8:判断调试器是否成功运行,若响应成功,则继续执行;否则报出异常并跳转到步骤7;

17、步骤9:通过不同的事件机制,完成对应的调试操作;与业务间的通信采用同步方式;

18、步骤10:在本地设置断点,断点显示在远端程序;

19、步骤11:该步在调试器端执行;根据程序设置的断点,实例化一个调试器对象,将用户调试选择提交到输入端进行调试工作;

20、步骤12:该步在调试器端执行;调用调试器接口,执行相应调试程序,并记录相应调试信息到内存中去;

21、步骤13:发射信号清除调试器的执行状态,回显调试信息内容;

22、步骤14:调试程序是否结束执行;若结束,则继续;否则跳转到步骤12;

23、步骤15:结束调试器程序执行,正常退出。

24、优选地,关于开始执行调试器:用户使用调试器软件过程中,若在调试器软件点击开始调试按钮,则步骤8中判断是否正在调试选项置为真。执行调试器软件之前必须确保python脚本解释器已经正常启动。

25、关于结束调试器:当用户在调试器软件上点击停止调试按钮,事件驱动将本文档来自技高网...

【技术保护点】

1.一种用于工业软件的Python代码远程调试方法,其特征在于,包括以下步骤:

2.如权利要求1所述的方法,其特征在于,当用户在调试器软件上点击停止调试按钮,事件驱动将从脚本生成器中获取步骤12所缓存列表数据,形成本次调试脚本所生成的所有语句数据对象,并中止调试程序。

3.一种用于工业软件的Python代码远程调试系统,其特征在于,所述系统包括调试器与脚本解释器,脚本解释器包括本地解释器和远程解释器,其中,本地解释器设置于调试器端,远程解释器设置于工业软件端,调试器与工业软件之间具有通信连接,所述系统采用权利要求1所述的Python代码远程调试方法。

【技术特征摘要】

1.一种用于工业软件的python代码远程调试方法,其特征在于,包括以下步骤:

2.如权利要求1所述的方法,其特征在于,当用户在调试器软件上点击停止调试按钮,事件驱动将从脚本生成器中获取步骤12所缓存列表数据,形成本次调试脚本所生成的所有语句数据对象,并中止调试程序。

<...

【专利技术属性】
技术研发人员:王铁军胡晨洋胡中玉向俊波赵长名
申请(专利权)人:成都信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1