一种调试Python脚本的方法及装置与流程

文档序号:13642315阅读:145来源:国知局

本发明涉及软件调试技术领域,更具体地说,涉及一种调试python脚本的方法、装置、设备及计算机可读存储介质。



背景技术:

在基于unix或者linux平台的软件研发活动中,常使用python做应用和工具。python是一种面向对象的计算机程序设计语言,采用该语言可以很轻松的把用其他语言制作的各种模块(尤其是c/c++)轻松地联结在一起。

但是,对于python脚本的调试目前没有较为优化的处理方式,常用的调试python脚本的方法一般有两种。其一:把脚本中需要调试的地方显示出来,供开发人员查看;其二:使用python的调试模块pdb,对python脚本进行单步调试。其中,前一种办法虽然比较实用,但是需要修改python代码;后一种办法无需修改python代码,但是单步调试需要耗费大量的时间。

因此,如何提高python脚本的调试效率,节约调试时间,是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种调试python脚本的方法、装置、设备及计算机可读存储介质,以实现提高python脚本的调试效率,节约调试时间。

为实现上述目的,本发明实施例提供了如下技术方案:

一种调试python脚本的方法,包括:

获取正在运行的目标脚本的所有运行信息;

判断所述运行信息是否与预设的调试信息相匹配;

若是,则显示所述调试信息对应的运行信息。

其中,所述获取正在运行的目标脚本的所有运行信息,包括:

获取所述目标脚本运行到当前位置的累计运行时间、行号、所述行号对应的代码内容、所述行号对应的函数名和所述函数名对应的文件名。

其中,所述获取正在运行的目标脚本的所有运行信息,包括:

判断预设的环境变量是否符合预设条件;

若是,则获取正在运行的目标脚本的所有运行信息。

其中,所述判断所述运行信息是否与预设的调试信息相匹配;若是,则显示所述调试信息对应的运行信息,包括:

判断所述运行信息是否与预设的函数名和/或文件名相匹配;

若是,则显示所述预设的函数名和/或文件名对应的运行信息。

其中,所述判断所述运行信息是否与预设的调试信息相匹配;若是,则显示所述调试信息对应的运行信息,包括:

判断所述运行信息是否与预设的函数名和/或文件名相匹配;

若是,则按照预设颜色显示所述预设的函数名和/或文件名对应的运行信息。

一种调试python脚本的装置,包括:

获取模块,用于获取正在运行的目标脚本的所有运行信息;

判断模块,用于判断所述运行信息是否与预设的调试信息相匹配;

执行模块,用于当所述运行信息与预设的调试信息相匹配时,显示所述调试信息对应的运行信息。

其中,所述获取模块具体用于:

获取所述目标脚本运行到当前位置的累计运行时间、行号、所述行号对应的代码内容、所述行号对应的函数名和所述函数名对应的文件名。

其中,所述判断模块包括:

判断单元,用于判断所述运行信息是否与预设的函数名和/或文件名相匹配;

执行单元,用于当所述运行信息与预设的函数名和/或文件名相匹配时,显示所述预设的函数名和/或文件名对应的运行信息。

一种调试python脚本的设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任意一项所述的调试python脚本的方法的步骤。

一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的调试python脚本的方法的步骤。

通过以上方案可知,本发明实施例提供的一种调试python脚本的方法,所述方法包括:获取正在运行的目标脚本的所有运行信息;判断所述运行信息是否与预设的调试信息相匹配;若是,则显示所述调试信息对应的运行信息。

可见,所述方法通过获取正在运行的目标脚本的所有运行信息,并将所述运行信息与预设的调试信息相比较,当所述运行信息与预设的调试信息相匹配时,显示所述调试信息对应的运行信息。通过实时监测目标脚本的所有运行信息,并调取与预设的调试信息相匹配的运行信息进行显示,提高了python脚本的调试效率,节约了调试时间;并且,提高了基于unix或者linux平台的python软件的调试效率,进而提高了研发人员的工作效率,从而节约了资源和成本。

相应的,本发明实施例提供的一种调试python脚本的装置、设备及计算机可读存储介质,也同样具有上述技术效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种调试python脚本的方法流程图;

图2为本发明实施例公开的另一种调试python脚本的方法流程图;

图3为本发明实施例公开的一种调试python脚本的装置示意图;

图4为本发明实施例公开的一种调试python脚本的设备示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种调试python脚本的方法、装置、设备及计算机可读存储介质,以实现提高python脚本的调试效率,节约调试时间。

参见图1,本发明实施例提供的一种调试python脚本的方法,包括:

s101、获取正在运行的目标脚本的所有运行信息;

需要说明的是,所述获取正在运行的目标脚本的所有运行信息,包括:

获取所述目标脚本运行到当前位置的累计运行时间、行号、所述行号对应的代码内容、所述行号对应的函数名和所述函数名对应的文件名。

具体的,获取所述目标脚本运行到当前位置的累计运行时间,将所述时间以秒为单位,记为seconds;获取运行到当前位置的行号,记为lineno;获取所述行号对应的代码内容,记为line_src;获取所述行号对应的函数名,记为funcname;获取所述函数名对应的文件名,记为filename。

需要说明的是,研发人员在采用本实施例提供的方法调试python脚本时,需要将预先编写的调试插件插入目标脚本。例如:将预先编写的debug.py调试插件插入需要调试的目标脚本,通过所述预先编写的debug.py调试插件实时监测目标脚本的运行细节,并获取目标脚本的所有运行信息。所述目标脚本与所述debug.py调试插件同时运行,目标脚本每运行一步,该调试插件便记录运行的所有细节。

s102、判断所述运行信息是否与预设的调试信息相匹配;若是,则执行s103;若否,则执行s104;

具体的,获取到目标脚本的运行信息时,需要判断所述运行信息是否与预设的调试信息相匹配,当所述运行信息与预设的调试信息相匹配时,便执行s103。通过比较上述标记的累计运行时间、行号、所述行号对应的代码内容、所述行号对应的函数名、所述函数名对应的文件名与预设的调试信息,判断运行信息是否与预设的调试信息相匹配。

需要说明的是,技术人员可以根据实际需要预设不同的调试信息。例如:指定某个函数名,则将获取到的运行信息里的函数与指定的函数名相匹配,当匹配到相同的函数名时,则执行s103;当未匹配到相同的函数名时,则不执行任何操作。

s103、显示所述调试信息对应的运行信息。

s104、无操作。

具体的,当所述运行信息与预设的调试信息相匹配时,显示所述调试信息对应的运行信息;当所述运行信息与预设的调试信息不匹配时,则无操作。例如:假设预设的调试信息为函数a,则判断运行信息与函数a是否匹配;若是,则显示函数a的运行细节,包括:运行到函数a中当前代码行的累计运行时间、函数a所属的文件名等。若观测到累计运行时间较长,那么技术人员可以考虑该函数是否需要优化。

可见,本实施例提供的一种调试python脚本的方法,所述方法包括:获取正在运行的目标脚本的所有运行信息;判断所述运行信息是否与预设的调试信息相匹配;若是,则显示所述调试信息对应的运行信息。所述方法通过获取正在运行的目标脚本的所有运行信息,并将所述运行信息与预设的调试信息相比较,当所述运行信息与预设的调试信息相匹配时,显示所述调试信息对应的运行信息。通过实时监测目标脚本的所有运行信息,并调取与预设的调试信息相匹配的运行信息进行显示,提高了python脚本的调试效率,节约了调试时间;并且,提高了基于unix或者linux平台的python软件的调试效率,进而提高了研发人员的工作效率,从而节约了资源和成本。

本发明实施例公开了另一种调试python脚本的方法,相对于上述实施例,本实施例对技术方案作了进一步的说明和优化。

参见图2,本发明实施例提供的本发明实施例提供的另一种调试python脚本的方法,包括:

s201、判断预设的环境变量是否符合预设条件;若是,则执行s202;若否,则执行s205;

具体的,技术人员可以通过预设环境变量来判定是否获取正在运行的目标脚本的所有运行信息。以上述实施例中的debug.py调试插件为例,该调试插件中的环境变量为debug,通过预设debug的值来判定是否获取正在运行的目标脚本的所有运行信息。例如:将debug的值设为1,表示符合条件,可以获取正在运行的目标脚本的所有运行信息;将debug的值设为0,表示不符合条件,不可以获取正在运行的目标脚本的所有运行信息。当然,技术人员可以根据习惯灵活设置环境变量的值,以实现获取正在运行的目标脚本的所有运行信息的功能。

s202、获取正在运行的目标脚本的所有运行信息;

s203、判断所述运行信息是否与预设的调试信息相匹配;若是,则执行s204;若否,则执行s205;

s204、显示所述调试信息对应的运行信息;

s205、无操作。

需要说明的是,本实施例与上述实施例的不同之处在于,本实施例可以通过预设环境变量来判定是否获取目标脚本的运行信息,进而执行其他步骤。

可见,本实施例提供的另一种调试python脚本的方法,所述方法包括:判断预设的环境变量是否符合预设条件;若是,则获取正在运行的目标脚本的所有运行信息;判断所述运行信息是否与预设的调试信息相匹配;若是,则显示所述调试信息对应的运行信息。所述方法通过获取正在运行的目标脚本的所有运行信息,并将所述运行信息与预设的调试信息相比较,当所述运行信息与预设的调试信息相匹配时,显示所述调试信息对应的运行信息。通过实时监测目标脚本的所有运行信息,并调取与预设的调试信息相匹配的运行信息进行显示,提高了python脚本的调试效率,节约了调试时间;并且,提高了基于unix或者linux平台的python软件的调试效率,进而提高了研发人员的工作效率,从而节约了资源和成本。

基于上述任意实施例,需要说明的是,所述判断所述运行信息是否与预设的调试信息相匹配;若是,则显示所述调试信息对应的运行信息,包括:

判断所述运行信息是否与预设的函数名和/或文件名相匹配;

若是,则显示所述预设的函数名和/或文件名对应的运行信息。

具体的,所述调试信息可以根据需要灵活调整。例如:将所述调试信息预设为所述目标脚本中的所有函数,那么将显示这些函数对应的运行信息;或者将所述调试信息预设为所述目标脚本中的某几个文件的某几个函数,那么将显示预设的某几个文件的某几个函数对应的运行信息;将所述调试信息预设为所述目标脚本中的某几个函数,那么将显示这些函数对应的运行信息;将所述调试信息预设为所述目标脚本中的某几个文件的所有函数,那么将显示某几个文件的所有函数对应的运行信息。

基于上述任意实施例,需要说明的是,所述判断所述运行信息是否与预设的调试信息相匹配;若是,则显示所述调试信息对应的运行信息,包括:

判断所述运行信息是否与预设的函数名和/或文件名相匹配;

若是,则按照预设颜色显示所述预设的函数名和/或文件名对应的运行信息。

具体的,技术人员可以根据需要将显示的运行细节用不同的颜色进行标识,通过彩色字体显示运行信息。例如:将显示的颜色预设为黄色,那么则以黄色字体显示所述预设的函数名和/或文件名对应的运行信息。

基于上述任意实施例,需要说明的是,采用本发明实施例提供的调试python脚本的方法,可以准确定位到需要调试的目标脚本中的指定文件的指定函数的特定代码行,进而能够帮助技术人员快速调试python脚本,提高了python脚本的调试效率,节约了调试时间。

下面对本发明实施例提供的一种调试python脚本的装置进行介绍,下文描述的一种调试python脚本的装置与上文描述的一种调试python脚本的方法可以相互参照。

参见图3,本发明实施例提供的一种调试python脚本的装置,包括:

获取模块301,用于获取正在运行的目标脚本的所有运行信息;

判断模块302,用于判断所述运行信息是否与预设的调试信息相匹配;

执行模块303,用于当所述运行信息与预设的调试信息相匹配时,显示所述调试信息对应的运行信息。

其中,所述获取模块具体用于:

获取所述目标脚本运行到当前位置的累计运行时间、行号、所述行号对应的代码内容、所述行号对应的函数名和所述函数名对应的文件名。

其中,所述判断模块包括:

判断单元,用于判断所述运行信息是否与预设的函数名和/或文件名相匹配;

执行单元,用于当所述运行信息与预设的函数名和/或文件名相匹配时,显示所述预设的函数名和/或文件名对应的运行信息。

其中,所述获取模块包括:

判断单元,用于判断预设的环境变量是否符合预设条件;

获取单元,用于当预设的环境变量符合预设条件时,获取正在运行的目标脚本的所有运行信息。

其中,所述判断模块具体用于:

判断所述运行信息是否与预设的函数名和/或文件名相匹配;

若是,则按照预设颜色显示所述预设的函数名和/或文件名对应的运行信息。

下面对本发明实施例提供的一种调试python脚本的设备进行介绍,下文描述的一种调试python脚本的设备与上文描述的一种调试python脚本的方法及装置可以相互参照。

参见图4,本发明实施例提供的一种调试python脚本的设备,包括:

存储器401,用于存储计算机程序;

处理器402,用于执行所述计算机程序时实现上述任意方法实施例所述的调试python脚本的方法的步骤。

下面对本发明实施例提供的一种计算机可读存储介质进行介绍,下文描述的一种计算机可读存储介质与上文描述的一种调试python脚本的方法、装置及设备可以相互参照。

一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例所述的调试python脚本的方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的一种调试python脚本的方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1