CN110069404B - 代码调试方法、装置、设备及介质 - Google Patents
代码调试方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN110069404B CN110069404B CN201910238687.5A CN201910238687A CN110069404B CN 110069404 B CN110069404 B CN 110069404B CN 201910238687 A CN201910238687 A CN 201910238687A CN 110069404 B CN110069404 B CN 110069404B
- Authority
- CN
- China
- Prior art keywords
- debugging
- code
- option
- target
- original
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种代码调试方法、装置、设备及介质。该方法包括:获取特定项目的项目源码文件,项目源码文件包括至少一段待测试代码和与每一待测试代码相对应的配置调试条件;加载调试选项配置文件,调试选项配置文件包括至少一段原始调试代码和与每一原始调试代码相对应的原始调试选项;采用解析器对调试选项配置文件进行解析,生成调试选项字典;基于配置调试条件查询调试选项字典,将与配置调试条件相匹配的原始调试选项确定为目标调试选项,获取与目标调试选项相对应的目标调试代码;采用目标调试代码对配置调试条件对应的待测试代码进行调试,获取特定项目对应的代码调试信息。该方法实现了提高对待测试代码进行调试的调试效率。
Description
技术领域
本发明涉及软件开发技术领域,尤其涉及一种代码调试方法、装置、设备及介质。
背景技术
在软件开发过程中,由于人们对软件的功能需求在不断增多,软件代码规模亦随之增加,出现的BUG(即软件代码中隐藏着的一些未被发现的缺陷或问题)也在同步增加,影响用户的体验,导致软件的市场竞争力下降。因此需要对BUG进行定位,以便开发人员解决BUG,提高BUG的解决效率,有助于提高客户对软件的体验。
目前在定位BUG或者解决BUG的过程中需要反复运行代码以实现调试,这种调试方法在复现问题的过程中需要多次编译代码,从而导致了代码调试效率低下,减缓了开发进度,或者在定位BUG或者解决BUG的过程中,在原代码添加一些新的调试代码,但是添加新的调试代码亦会导致软件存在隐患。
发明内容
本发明实施例提供一种代码调试方法、装置、设备及介质,以解决当前定位BUG或者解决BUG的过程调试效率低的问题。
一种代码调试方法,包括:
获取特定项目的项目源码文件,所述项目源码文件包括至少一段待测试代码和与每一所述待测试代码相对应的配置调试条件;
加载调试选项配置文件,所述调试选项配置文件包括至少一段原始调试代码和与每一所述原始调试代码相对应的原始调试选项;
采用解析器对所述调试选项配置文件进行解析,生成调试选项字典;
基于所述配置调试条件查询所述调试选项字典,将与所述配置调试条件相匹配的原始调试选项确定为目标调试选项,获取与所述目标调试选项相对应的目标调试代码;
采用所述目标调试代码对所述配置调试条件对应的待测试代码进行调试,获取所述特定项目对应的代码调试信息。
一种代码调试装置,包括:
项目源码文件获取模块,获取特定项目的项目源码文件,所述项目源码文件包括至少一段待测试代码和与每一所述待测试代码相对应的配置调试条件;
选项配置文件加载模块,用于加载调试选项配置文件,所述调试选项配置文件包括至少一段原始调试代码和与每一所述原始调试代码相对应的原始调试选项;
调试选项字典生成模块,用于采用解析器对所述调试选项配置文件进行解析,生成调试选项字典;
目标调试代码获取模块,用于基于所述配置调试条件查询所述调试选项字典,将与所述配置调试条件相匹配的原始调试选项确定为目标调试选项,获取与所述目标调试选项相对应的目标调试代码;
代码调试信息获取模块,用于采用所述目标调试代码对所述配置调试条件对应的待测试代码进行调试,获取所述特定项目对应的代码调试信息。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述代码调试方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述代码调试方法的步骤。
上述代码调试方法、装置、计算机设备及存储介质,通过获取特定项目的项目源码文件,确定项目源码文件中每一所述待测试代码相对应的配置调试条件,以便根据不同配置调试条件确定相对应的调试代码,有助于提高调试代码的应用性。加载调试选项配置文件,该调试选项配置文件配置有至少一段原始调试代码和对应的原始调试选项之间的关联关系,可提供良好的移植和扩展性,根据实际情况进行微调,以实现重复利用该调试选项配置文件,使软件调试流程更加规范。采用解析器对调试选项配置文件进行解析,生成调试选项字典,以便依据调试选项字典确定对具体某一待测试代码进行调试,从而提高调试效率。基于配置调试条件查询调试选项字典,将与配置调试条件相匹配的原始调试选项确定为目标调试选项并获取与目标调试选项相对应的目标调试代码,采用目标调试代码对待测试代码进行调试,获取特定项目对应的代码调试信息,以判断待测试代码是否存在BUG,从而实现快速获取代码调试的结果,并对待测试代码中出现的BUG进行快速定位,提高BUG的定位效率,有助于保障项目开发效率和质量。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中代码调试方法的一流程图;
图2是本发明一实施例中代码调试方法的另一流程图;
图3是本发明一实施例中代码调试方法的另一流程图;
图4是本发明一实施例中代码调试方法的另一流程图;
图5是本发明一实施例中代码调试方法的另一流程图;
图6是本发明一实施例中代码调试方法的另一流程图;
图7是本发明一实施例中代码调试装置的一示意图;
图8是本发明一实施例中代码调试装置的另一示意图;
图9是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的代码调试方法,该代码调试方法应用在代码调试系统中,采用解析器对调试选项配置文件进行解析生成调试选项字典,根据待测试代码对应的配置调试条件确定目标调试选项,若目标调试选项满足调试选项字典的预设条件,采用目标调试代码对待测试代码进行调试,以提高代码调试效率,加快项目开发速度。
在一实施例中,如图1所示,本实施例提供一种代码调试方法,包括代码调试系统执行的如下步骤:
S101:获取特定项目的项目源码文件,项目源码文件包括至少一段待测试代码和与每一待测试代码相对应的配置调试条件。
其中,特定项目的项目源码文件是指开发人员基于特定项目开发出的源代码所形成的文件。特定项目是指可完成特定功能的软件项目。待测试代码是指可完成某一功能的功能代码,具体是指软件开发中已经编写完成,需要进行测试并查错,以确定其是否能完成相应功能的代码。配置调试条件是指开发人员在项目开发过程中,预先配置的对该待测试代码进行调试的条件。
具体地,开发人员在开发编辑项目源码文件过程中,可对项目源码文件中不同功能的待测试代码配置不同的配置调试条件,以使最终形成的项目源码文件中包含至少一段待测试代码和与每一待测试代码相对应的配置调试条件。例如,开发人员在编辑完成一段待测试代码之后,可采用特定标识在待测试代码的注释中标注相应的配置调试条件,以便后续识别到这一特定标识时,确定该特定标识对应的配置调试条件。由于项目源码文件中,每一待测试代码对应一配置调试条件,为后续基于该配置调试条件适用不同的调试代码进行调试提供技术支持。
S102:加载调试选项配置文件,调试选项配置文件包括至少一段原始调试代码和与每一原始调试代码相对应的原始调试选项。
其中,调试选项配置文件是指配置有原始调试代码和原始调试选项之间关联关系,以便进行调试的文件。原始调试代码是指用于查找待测试代码中是否存在错误(即BUG)的代码,以便开发人员改正待测试代码中的错误,提高改正效率,从而保证开发人员所开发的软件能够供用户正常使用。原始调试选项是指用于控制原始调试代码是否对待测试代码进行测试的选项开关。可以理解地,该原始调试代码是用于检测并定位待测试代码是否存在BUG的代码,而原始调试选项是用于确定能否运行该原始调试代码的开关,即只有满足原始调试选项的要求,才可运行相对应的原始调试代码,实现对相应的待测试代码进行检测定位。
具体地,代码调试系统加载预先配置好的调试选项配置文件,该调试选项配置文件包括至少一段原始调试代码和与每一原始调试代码相对应的原始调试选项,以便后续启动调试选项配置文件中的原始调试选项,使对应的原始调试代码对待测试代码进行调试。可以理解地,由于调试选项配置文件配置有至少一段原始调试代码和对应的原始调试选项之间的关联关系,是一个完整的调试文件,提供了良好的移植和扩展性,因此,调试选项配置文件可以根据实际情况进行调整原始调试代码和原始调试选项之间的关联关系,链接到不同项目中,从而可实现重复利用该调试选项配置文件,使软件调试流程更加规范和简洁。
S103:采用解析器对调试选项配置文件进行解析,生成调试选项字典。
其中,解析器是指用于对调试选项配置文件进行解析,将调试选项配置文件分成几部分,然后依据调试需求,对特定部分进行解析的工具。例如,采用解析器可以将名词与名词的对象分解、名词和名词的方法分解、名词与名词的属性分解和名词与名词的选项分解等,在本实施例中,解析器对调试选项配置文件进行分离,然后依据调试需求,对分离后的调试选项进行解析,以解析其对应的键和值。调试选项字典是用于存储对调试选项配置文件进行解析的解析结果的程序,在调试过程,查询调试选项字典以判断是否采用相应的原始调试代码对待测试代码进行调试。一般地,特定项目的项目源码文件中包含多个功能模块对应的待测试代码,在对特定项目中的项目源码进行调试时,为节省调试时间,可以仅对特定的功能模块或者与该功能模块相关联的关联模块进行调试,因此,需要生成调试选项字典以便基于开发人员在项目源码文件中配置的配置调试条件确定具体对哪一功能模块进行调试,从而节省了调试流程,提高调试效率。例如,若某特定的功能模块添加了新的代码或者是出现了BUG,此时可以通过查询调试选项字典,从而启动相应的原始调试代码对该功能模块或者与该功能模块相关联的关联模块进行调试,而不必要反复运行项目源码寻找BUG,从而有助于提高调试效率,加快开发进度。
S104:基于配置调试条件查询调试选项字典,将与配置调试条件相匹配的原始调试选项确定为目标调试选项,获取与目标调试选项相对应的目标调试代码。
其中,配置调试条件是开发人员预先给项目源码文件中每一待测试代码配置的用于进行调试的条件,可根据该配置调试条件查找到相对应的目标调试选项。目标调试选项是指从调试选项字典所有的原始调试选项中确定的与配置调试条件相匹配的原始调试选项。目标调试代码是调试选项配置文件中,与该目标调试选项相对应的原始调试代码。可以理解地,该目标调试选项是用于进行控制目标调试代码是否对与该配置调试条件相对应的待测试代码进行调试的开关。
在一实施例中,代码调试系统在获取特定项目的项目源码文件之后,采用正则表达式匹配出项目源码文件中用于标注配置调试条件的特定标识,并获取与特定标识相对应的配置调试条件;然后基于该配置调试条件查询调试选项字典,以确定是否有跟该配置调试条件相对应的原始调试选项,若有,则将该原始调试选项确定为目标调试选项,以便快速获取到目标调试选项和目标调试代码,从而对待测试代码进行调试,以检测该待测试代码是否存在BUG(即错误)。
例如,某一待测试代码对应的配置调试条件为DEBUG_MODE=TRUE,则基于该配置调试条件查询调试选项字典,确定调试选项字典中与DEBUG_MODE=TRUE这一配置调试条件相对应的原始调试选项确定为目标调试选项,并将该目标调试选项对应的原始调试代码确定为与目标调试选项相对应的目标调试代码。目标调试代码是指与目标调试选项对应的原始调试代码,具体是用于对与配置调试条件相对应的待测试代码进行调试的调试代码。可以理解地,在调试过程中,由于调试选项字典设置每一原始调试代码对应的原始调试选项,只有目标调试选项与配置调试条件相匹配,才执行目标调试代码对与配置调试条件相对应的待测试代码进行调试,使得开发人员仅采用满足配置调试条件的目标调试选项对应的目标调试代码进行调试,以提高代码调试效率,加快软件项目的开发和调试速度。
S105:采用目标调试代码对配置调试条件对应的待测试代码进行调试,获取特定项目对应的代码调试信息。
其中,代码调试信息是指目标调试代码对配置调试条件对应的待测试代码进行调试后输出的调试信息,以便根据代码调试信息确定该待测试代码是否存在BUG。具体地,若目标调试选项满足预设条件,则采用目标调试代码对配置调试条件对应的待测试代码进行调试,获取特定项目对应的代码调试信息,从而可以高效获取到代码调试信息,以判断待测试代码是否存在BUG。可以理解地,若待测试代码存在BUG,则根据返回的代码调试信息确定该待测试代码中存在的错误的具体位置,以便开发人员进行修正。
本实施例所提供的代码调试方法,通过获取特定项目的项目源码文件,确定项目源码文件中每一待测试代码相对应的配置调试条件,以便根据不同配置调试条件确定相对应的调试代码,有助于提高调试代码的应用性。加载调试选项配置文件,该调试选项配置文件配置有至少一段原始调试代码和对应的原始调试选项之间的关联关系,可提供良好的移植和扩展性,根据实际情况进行微调,以实现重复利用该调试选项配置文件,使软件调试流程更加规范。采用解析器对调试选项配置文件进行解析,生成调试选项字典,以便依据调试选项字典确定对具体某一待测试代码进行调试,从而提高调试效率。基于配置调试条件查询调试选项字典,将与配置调试条件相匹配的原始调试选项确定为目标调试选项并获取与目标调试选项相对应的目标调试代码,采用目标调试代码对待测试代码进行调试,获取特定项目对应的代码调试信息,以判断待测试代码是否存在BUG,从而实现快速获取代码调试的结果,并对待测试代码中出现的BUG进行快速定位,提高BUG的定位效率,有助于保障项目开发效率和质量。
在一实施例中,如图2所示,步骤S101,即获取特定项目的项目源码文件,具体包括如下步骤:
S201:加载特定项目对应的项目程序代码,项目程序代码包括至少一段待测试代码。
其中,项目程序代码是指特定项目中,开发人员根据特定功能需求编写的源代码。为保证对该项目程序代码准确无误,需要对不确定是否实现正常功能的代码进行调试,因此将需要进行调试的代码确定为待测试代码。可以理解地,由于完整的项目程序代码中包含的功能模块有所不同,因此,需要对所有功能模块对应的待测试代码进行测试。但为了保证调试的效率,在实际调试过程中,可将已经更新的功能模块以及与该已经更新的功能模块关联的代码作为待测试代码,其他没有更新的功能模块或者不存在关联关系的功能模块对应的代码作为待测试代码进行调试,以确保调试的高效性。
S202:依次显示每一待测试代码对应的调试配置界面,基于调试配置获取每一待测试代码对应的配置调试条件,获取项目源码文件。
其中,调试配置界面是指用于配置与待测试代码相对应的配置调试条件的界面。具体地,开发人员在编辑完每一待测试代码之后,可点击相应的配置按钮或者输入相应的配置指令,以进入调试配置界面,在该调试配置界面上可显示常用调试条件以供开发人员进行选择,以确定相对应的配置调试条件,从而提高配置调试条件的配置效率。
本实施例所提供的代码调试方法中,加载特定项目对应的项目程序代码,以获取需要进行调试的待测试代码;依次显示每一待测试代码对应的调试配置界面,以便准确快捷地配置与待测试代码对应的配置调试条件,从而获取项目源码文件,从而确定每一待测试代码的配置调试条件,有助于加快调试进度。
在一实施例中,如图3示,步骤S103,即采用解析器对调试选项配置文件进行解析,生成调试选项字典,具体包括如下步骤:
S301:采用解析器对调试选项配置文件进行解析,获取相互关联的原始调试代码和原始调试选项。
具体地,服务器采用解析器对调试选项配置文件进行解析,获取到相互关联的原始调试代码和原始调试选项,以便后续对原始调试选项进行解析,从而快速生成调试选项字典。
S302:对原始调试选项进行键值分解,获取与原始调试选项相对应的调试选项键和调试选项值。
其中,调试选项键是指调试选项中的调试项目,一个调试选项键可以对应多个调试选项值,以便根据实际的代码执行不同的步骤。调试选项值是指预设的值,用于判断目标调试选项是否打开,以控制目标调试代码是否对待测试代码进行调试。例如,当调试选项为DEBUG_MODE=TRUE,即调试选项值为TRUE时,则执行对应的目标调试代码对待测试代码进行调试;当调试选项为DEBUG_MODE=FALSE,即调试选项值为FALSE时,则执行对应的目标调试代码对待测试代码进行调试。
具体地,解析器对原始调试选项进行键值分解,获取与原始调试选项相对应的调试选项键和调试选项值,一个调试选项值对应一种调试模式,以使每一调试选项值对应不同的调试模式,然后生成调试选项字典。其中,在分离过程中可使同一调试选项键匹配不同的调试选项值,例如,DEBUG_MODE=TRUE,或者DEBUG_MODE=FALSE等,以便根据配置调试条件,让调试代码执行不同的步骤,即根据配置调试条件查询调试选项字典,获取与配置调试条件相应的目标调试选项,使与目标调试选项相对应的目标调试代码执行相应的步骤,从而快速完成调试过程,加快软件开发进度。
S303:将相互关联的原始调试代码、调试选项键和调试选项值填充到选项字典表中,获取调试选项字典。
具体地,服务器将相互关联的原始调试代码、调试选项键和调试选项值填充到选项字典表中,生成调试选项字典。例如,原调试选项中DEBUG_MODE=TRUE,解析器就会将该调试选项键和调试选项值进行分解,然后为调试选项键匹配不同的调试选项值,以便确定执行调试还是不执行调试,并填充至选项字典表中,生成调试选项字典。
本实施例所提供的代码调试方法,采用解析器对调试选项配置文件进行解析,以将原始调试选项的键和值进行分解,以便根据该分解结果获取到调试选项键和调试选项值,并将相互关联的原始调试代码、调试选项键和调试选项值填充到选项字典表中,获取调试选项字典,以便根据该调试选项字典确定是否对某一段代码进行调试,以简化调试流程,加快调试速度。
在一实施例中,如图4所示,步骤S104,即基于待测试代码配置调试条件查询调试选项字典,将与配置调试条件相匹配的原始调试选项确定为目标调试选项,具体包括如下步骤:
S401:若配置调试条件包括目标调试选项键和目标调试选项值,则采用精确检索算法查询调试选项字典,将与配置调试条件相匹配的原始调试选项确定为目标调试选项。
其中,精确检索算法是指检索词与资源库中某一字段完全相同的检索方式,在本实施例中,是指配置调试条件与调试选项字典中的调试选项相同。具体地,配置调试条件与调试选项的调试选项键和调试选项值完全相同,则将获取到的原始调试选项完全相同,则将该原始调试选项确定为目标调试选项。通过精确检索算法可以准确获取目标调试选项,以便根据目标调试选项确定相应的目标调试代码,采用目标调试代码对待测试代码进行调试。
S402:若配置调试条件包括目标调试选项键,则采用模糊检索算法查询调试选项字典,获取与目标调试选项键相对应的至少一个推荐调试选项值,基于至少一个推荐调试选项值确定目标调试选项值,根据目标调试选项键和目标调试选项值确定目标调试选项。
其中,模糊检索算法是指无论词的位置怎样,只要出现该词即可,例如,配置调试条件中出现debug_out,通过模糊检索算法获取包含debug_out的调试选项,从而开发人员可以从所显示的至少一个推荐调试选项值中,选择需要进行测试的目标调试选项值,再基于目标调试选项健和目标调试选项值进行精确检索。可以理解地,通过模糊检索算法可以获取较多的推荐调试选项值供开发人员选择,有助于加快确定所需的目标调试选项值。
具体地,配置调试条件包含有目标调试选项键时,服务器获取到目标调试选项键,则通过模糊检索算法获取包含该目标调试选项键的所有原始调试选项对应的调试选项值作为推荐推荐调试选项值,开发人员可以依据所有推荐调试选项值确定目标调试选项值,再将该目标调试选项健和目标调试选项值进行精确检索。
本实施例所提供的代码调试方法中,若配置调试条件包括目标调试选项键和目标调试选项值,则采用精确检索算法查询调试选项字典,将与配置调试条件相匹配的原始调试选项确定为目标调试选项,以快速、精确获取到目标调试选项,提高调试的速度。由于精确检索算法具有一定的局限性,若配置调试条件包括目标调试选项键,则采用模糊检索算法查询调试选项字典,从而获取与目标调试选项键相对应的至少一个推荐调试选项值,便于开发人员依据推荐调试选项值选择目标调试选项值,从而目标调试选项键和目标调试选项值确定目标调试选项,采用模糊检索算法能够完整显示与目标调试选项键对应的选项,既能减低对开发人员的精准度的要求,也有利于避免检索不到与目标调试选项键对应的选项。
在一实施例中,如图5所示,步骤S105,即采用目标调试代码对配置调试条件对应的待测试代码进行调试,获取特定项目对应的代码调试信息,具体包括如下步骤:
S501:采用目标调试代码对配置调试条件对应的待测试代码进行调试,获取原始调试数据。
其中,原始调试数据是指对配置调试条件对应的待测试代码进行调试后的调试结果的数据。可以理解地,该原始调试数据包含有待测试代码正常执行的数据和待测试代码含有BUG所导致的测试失败数据,以便开发人员进行修改待测试代码。
S502:调用预设的参数输出模板,参数输出模板包括至少一个目标输出参数和与每一目标输出参数相对应的输出参数类型。
其中,参数输出模板是开发人员预设的,用于对原始调试数据进行处理,以使最终输出的数据是开发人员需要的数据。目标输出参数是指开发人员需要的数据的参数。在本实施例中,通过在参数输出模板中预先设置需要输出的目标输出参数,以便实现基于目标输出参数仅输出开发人员需要的数据,有助于减少后续数据筛选的过程中,提高处理效率。例如,仅输出待测试代码调试过程中出现BUG的数据,从而便于开发人员对存在错误的待测试代码进行修改,提高调试效率。输出参数类型是指采用何种数据类型将原始调试数据输出的参数类型,例如,输出参数类型可以是Integer(整型)、Long(长整型)、Single(单精度浮点型)、Double(双精度浮点型)等,设置输出参数类型以确保输出的数据是开发人员需要的,并对其他的类型的调试结果进行过滤。
S503:基于目标输出参数和输出参数类型,对原始调试数据进行模板化处理,获取特定项目的代码调试信息。
具体地,服务器获取到原始调试数据后,采用目标输出参数和输出参数类对原始调试数据进行模板化处理,获取特定项目的代码调试信息,以实现可视化显示代码调试信息,即可视化显示特定项目中存在的BUG的待测试代码对应的调试结果,便于节省开发人员的查看时间。
本实施例所提供的代码调试方法中,采用目标调试代码对配置调试条件对应的待测试代码进行调试,获取原始调试数据。调用预设的参数输出模板,参数输出模板包括至少一个目标输出参数和与每一目标输出参数相对应的输出参数类型,设置输出参数类型以确保输出的数据是开发人员需要的,并对其他的类型的调试结果进行过滤。基于目标输出参数和输出参数类型,对原始调试数据进行模板化处理,获取特定项目的代码调试信息,以便减少后续数据筛选过程,节省开发人员的查看时间,提高处理效率。
在一实施例中,如图6所示,步骤S501,采用目标调试代码对配置调试条件对应的配置调试条件对应的待测试代码进行调试,获取原始调试数据,包括:
S601:采用变量捕捉脚本捕获配置调试条件对应的待测试代码中的目标变量,将目标变量传递给目标调试代码的接口,获取更新后的目标调试代码。
其中,变量捕捉脚本是指开发人员编写的用于捕捉某个变量的脚本,以实现对变量进行监控。具体地,为了在调试过程中可以捕获待测试代码的中间结果,跟踪某个变量经过一系列操作的变化情况,需要开发人员预先采用捕捉脚本进行捕捉变量。更新后的目标调试代码是指能够监控目标变量的代码。
S602:采用更新后的目标调试代码对待测试代码进行调试,获取原始调试数据。
具体地,服务器采用更新后的目标调试代码对待测试代码进行调试,获取原始调试数据,以实现对待测试代码进行调试和监控目标变量。例如,在待测试代码中声明一个变量int a,此时调试代码中设置debug_out接口,用于监控变量a,获取更新后的目标调试代码,此时在待测试代码中写入debug_out<<“a:”<<a,即可监控变量a,并将对变量a每一状态变化所对应的值输出到控制台上,以便开发人员查看。
本实施例所提供的代码调试方法中,服务器采用变量捕捉脚本捕获配置调试条件对应的待测试代码中的目标变量,将目标变量传递给目标调试代码的接口,获取更新后的目标调试代码,以实现跟踪目标变量。采用更新后的目标调试代码对待测试代码进行调试,获取原始调试数据,从而使开发人员确定在调试过程中该目标变量的连续变化状态,从而实现监控目标变量的目的,因此若出现BUG,开发人员可以根据控制台的数据获知BUG的具体位置,便于修改代码,从而快速完成。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种代码调试装置,该代码调试装置与上述实施例中代码调试方法一一对应。如图7所示,该代码调试装置包括项目源码文件获取模块701、选项配置文件加载模块702、调试选项字典生成模块703、目标调试代码获取模块704和代码调试信息获取模块705。各功能模块详细说明如下:
项目源码文件获取模块701,获取特定项目的项目源码文件,项目源码文件包括至少一段待测试代码和与每一待测试代码相对应的配置调试条件。
选项配置文件加载模块702,用于加载调试选项配置文件,调试选项配置文件包括至少一段原始调试代码和与每一原始调试代码相对应的原始调试选项。
调试选项字典生成模块703,用于采用解析器对调试选项配置文件进行解析,生成调试选项字典。
目标调试代码获取模块704,用于基于配置调试条件查询调试选项字典,将与配置调试条件相匹配的原始调试选项确定为目标调试选项,获取与目标调试选项相对应的目标调试代码。
代码调试信息获取模块705,用于采用目标调试代码对配置调试条件对应的待测试代码进行调试,获取特定项目对应的代码调试信息。
优选地,源码文件获取模块701,包括:项目程序代码加载单元和配置调试条件获取单元。
项目程序代码加载单元,用于加载特定项目对应的项目程序代码,项目程序代码包括至少一段待测试代码。
配置调试条件获取单元,用于依次显示每一待测试代码对应的调试配置界面,基于调试配置获取每一待测试代码对应的配置调试条件,获取项目源码文件。
优选地,调试选项字典生成模块703,包括:配置文件解析单元、调试选项项分解单元和选项字典表填充单元。
配置文件解析单元,用于采用解析器对调试选项配置文件进行解析,获取相互关联的原始调试代码和原始调试选项。
调试选项项分解单元,用于对原始调试选项进行键值分解,获取与原始调试选项相对应的调试选项键和调试选项值。
选项字典表填充单元,用于将相互关联的原始调试代码、调试选项键和调试选项值填充到选项字典表中,获取调试选项字典。
优选地,目标调试代码获取模块704,包括:精确检索算法查询单元和模糊检索算法查询单元。
精确检索算法查询单元,用于若配置调试条件包括目标调试选项键和目标调试选项值,则采用精确检索算法查询调试选项字典,将与配置调试条件相匹配的原始调试选项确定为目标调试选项。
模糊检索算法查询单元,用于若配置调试条件包括目标调试选项键,则采用模糊检索算法查询调试选项字典,获取与目标调试选项键相对应的至少一个推荐调试选项值,基于至少一个推荐调试选项值确定目标调试选项值,根据目标调试选项键和目标调试选项值确定目标调试选项。
优选地,如图8所示,代码调试信息获取模块705,包括:原始调试数据获取单元801、参数输出模板调用单元802和模板化处理单元803。
原始调试数据获取单元801,用于采用目标调试代码对配置调试条件对应的待测试代码进行调试,获取原始调试数据。
参数输出模板调用单元802,用于调用预设的参数输出模板,参数输出模板包括至少一个目标输出参数和与每一目标输出参数相对应的输出参数类型。
模板化处理单元803,用于基于目标输出参数和输出参数类型,对原始调试数据进行模板化处理,获取特定项目的代码调试信息。
优选地,原始调试数据获取单元801,包括:目标变量捕捉子单元和待测试代码调试子单元。
目标变量捕捉子单元,用于采用变量捕捉脚本捕获配置调试条件对应的待测试代码中的目标变量,将目标变量传递给目标调试代码的接口,获取更新后的目标调试代码。
待测试代码调试子单元,采用采用更新后的目标调试代码对待测试代码进行调试,获取原始调试数据。
关于代码调试装置的具体限定可以参见上文中对于代码调试方法的限定,在此不再赘述。上述代码调试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,该代码调试系统可以为单机设备,即可以为内部结构如图9所示的计算机设备,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行上述代码调试方法过程中采用或者生成的数据,如目标调试代码。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种代码调试方法。
在一实施例中,该代码调试系统可以包括客户终端和与客户终端通过网络通信相连的服务器,该服务器可以为如图9所示的计算机设备。其中,客户终端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。客户端可安装在但不限于各种个人计算机和笔记本电脑上。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中代码调试方法,例如图1所示的步骤S101-S105,或者图2至图6中所示的步骤,为避免重复,这里不再赘述。或者,处理器执行计算机程序时代码调试方法这一实施例中的各模块/单元的功能,例如图7所示的项目源码文件获取模块701、选项配置文件加载模块702、调试选项字典生成模块703、目标调试代码获取模块704和代码调试信息获取模块705的功能,为避免重复,这里不再赘述。
在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中代码调试方法,例如图1所示的步骤S101-S105,或者图2至图6中所示的步骤,为避免重复,这里不再赘述。或者,处理器执行计算机程序时代码调试方法这一实施例中的各模块/单元的功能,例如图7所示的项目源码文件获取模块701、选项配置文件加载模块702、调试选项字典生成模块703、目标调试代码获取模块704和代码调试信息获取模块705的功能,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (9)
1.一种代码调试方法,其特征在于,包括:
获取特定项目的项目源码文件,所述项目源码文件包括至少一段待测试代码和与每一所述待测试代码相对应的配置调试条件;
加载调试选项配置文件,所述调试选项配置文件包括至少一段原始调试代码和与每一所述原始调试代码相对应的原始调试选项;
采用解析器对所述调试选项配置文件进行解析,生成调试选项字典;
基于所述配置调试条件查询所述调试选项字典,将与所述配置调试条件相匹配的原始调试选项确定为目标调试选项,获取与所述目标调试选项相对应的目标调试代码;
采用所述目标调试代码对所述配置调试条件对应的待测试代码进行调试,获取所述特定项目对应的代码调试信息;
其中,所述采用解析器对所述调试选项配置文件进行解析,生成调试选项字典,包括:
采用解析器对所述调试选项配置文件进行解析,获取相互关联的所述原始调试代码和原始调试选项;
对所述原始调试选项进行键值分解,获取与所述原始调试选项相对应的调试选项键和调试选项值;
将相互关联的所述原始调试代码、所述调试选项键和所述调试选项值填充到选项字典表中,获取调试选项字典。
2.如权利要求1所述的代码调试方法,其特征在于,所述获取特定项目的项目源码文件,包括:
加载特定项目对应的项目程序代码,所述项目程序代码包括至少一段待测试代码;
依次显示每一所述待测试代码对应的调试配置界面,基于所述调试配置获取每一所述待测试代码对应的配置调试条件,获取所述项目源码文件。
3.如权利要求1所述的代码调试方法,其特征在于,基于所述配置调试条件查询所述调试选项字典,将与所述配置调试条件相匹配的原始调试选项确定为目标调试选项,包括:
若所述配置调试条件包括目标调试选项键和目标调试选项值,则采用精确检索算法查询所述调试选项字典,将与所述配置调试条件相匹配的原始调试选项确定为目标调试选项;
若所述配置调试条件包括目标调试选项键,则采用模糊检索算法查询所述调试选项字典,获取与所述目标调试选项键相对应的至少一个推荐调试选项值,基于至少一个推荐调试选项值确定目标调试选项值,根据所述目标调试选项键和所述目标调试选项值确定目标调试选项。
4.如权利要求1所述的代码调试方法,其特征在于,采用所述目标调试代码对所述配置调试条件对应的待测试代码进行调试,获取所述特定项目对应的代码调试信息,包括:
采用所述目标调试代码对所述配置调试条件对应的待测试代码进行调试,获取原始调试数据;
调用预设的参数输出模板,所述参数输出模板包括至少一个目标输出参数和与每一所述目标输出参数相对应的输出参数类型;
基于所述目标输出参数和所述输出参数类型,对所述原始调试数据进行模板化处理,获取所述特定项目的代码调试信息。
5.如权利要求4所述的代码调试方法,其特征在于,所述采用所述目标调试代码对所述配置调试条件对应的待测试代码进行调试,获取原始调试数据,包括:
采用变量捕捉脚本捕获所述配置调试条件对应的待测试代码中的目标变量,将所述目标变量传递给所述目标调试代码的接口,获取更新后的目标调试代码;
采用更新后的目标调试代码对所述待测试代码进行调试,获取原始调试数据。
6.一种代码调试装置,其特征在于,包括:
项目源码文件获取模块,获取特定项目的项目源码文件,所述项目源码文件包括至少一段待测试代码和与每一所述待测试代码相对应的配置调试条件;
选项配置文件加载模块,用于加载调试选项配置文件,所述调试选项配置文件包括至少一段原始调试代码和与每一所述原始调试代码相对应的原始调试选项;
调试选项字典生成模块,用于采用解析器对所述调试选项配置文件进行解析,生成调试选项字典;
目标调试代码获取模块,用于基于所述配置调试条件查询所述调试选项字典,将与所述配置调试条件相匹配的原始调试选项确定为目标调试选项,获取与所述目标调试选项相对应的目标调试代码;
代码调试信息获取模块,用于采用所述目标调试代码对所述配置调试条件对应的待测试代码进行调试,获取所述特定项目对应的代码调试信息;
其中,调试选项字典生成模块,包括:
配置文件解析单元,用于采用解析器对调试选项配置文件进行解析,获取相互关联的原始调试代码和原始调试选项;
调试选项分解单元,用于对原始调试选项进行键值分解,获取与原始调试选项相对应的调试选项键和调试选项值;
选项字典表填充单元,用于将相互关联的原始调试代码、调试选项键和调试选项值填充到选项字典表中,获取调试选项字典。
7.如权利要求6所述的代码调试装置,其特征在于,所述代码调试信息获取模块,包括:
原始调试数据获取单元,用于采用所述目标调试代码对所述配置调试条件对应的待测试代码进行调试,获取原始调试数据;
参数输出模板调用单元,用于调用预设的参数输出模板,所述参数输出模板包括至少一个目标输出参数和与每一所述目标输出参数相对应的输出参数类型;
模板化处理单元,用于基于所述目标输出参数和所述输出参数类型,对所述原始调试数据进行模板化处理,获取所述特定项目的代码调试信息。
8.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述代码调试方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述代码调试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910238687.5A CN110069404B (zh) | 2019-03-27 | 2019-03-27 | 代码调试方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910238687.5A CN110069404B (zh) | 2019-03-27 | 2019-03-27 | 代码调试方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069404A CN110069404A (zh) | 2019-07-30 |
CN110069404B true CN110069404B (zh) | 2020-08-25 |
Family
ID=67366640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910238687.5A Active CN110069404B (zh) | 2019-03-27 | 2019-03-27 | 代码调试方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069404B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966602B (zh) * | 2020-09-04 | 2022-05-31 | 苏州浪潮智能科技有限公司 | 一种定点代码调试方法、系统、终端及存储介质 |
CN112631949B (zh) * | 2020-12-10 | 2021-09-21 | 浙江华创视讯科技有限公司 | 一种调试方法、装置、计算机设备及存储介质 |
CN113377365B (zh) * | 2021-07-09 | 2023-07-18 | 北京字跳网络技术有限公司 | 代码显示方法、装置、设备、计算机可读存储介质及产品 |
CN116662206B (zh) * | 2023-07-24 | 2024-02-13 | 泰山学院 | 计算机软件在线实时可视化调试方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1306430C (zh) * | 2002-12-31 | 2007-03-21 | 上海科泰世纪科技有限公司 | 基于构件的用户自定义事件方法 |
CN104298595A (zh) * | 2014-09-29 | 2015-01-21 | 百视通网络电视技术发展有限责任公司 | 自动化测试方法及测试系统 |
-
2019
- 2019-03-27 CN CN201910238687.5A patent/CN110069404B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110069404A (zh) | 2019-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110069404B (zh) | 代码调试方法、装置、设备及介质 | |
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
US8966449B2 (en) | Test case pattern matching | |
US9632754B2 (en) | Auto generation and linkage of source code to test cases | |
CN111026645B (zh) | 用户界面自动化测试方法、装置、存储介质及电子设备 | |
CN111459495B (zh) | 单元测试代码文件生成方法、电子装置及存储介质 | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN107656872B (zh) | 软件测试方法、装置、设备和计算机存储介质 | |
CN110704297B (zh) | 代码评审方法、装置、计算机设备及存储介质 | |
CN111078568B (zh) | 代码规范方法、装置、计算机设备和存储介质 | |
CN111290950B (zh) | 程序测试中测试点获取方法、装置、存储介质和设备 | |
KR102588856B1 (ko) | 소프트웨어 검증 방법 및 이를 위한 장치 | |
CN111897727A (zh) | 软件测试方法、装置、计算机设备及存储介质 | |
US20080127118A1 (en) | Method and system for dynamic patching of software | |
CN113900962B (zh) | 代码差异检测方法及装置 | |
JPH10320234A (ja) | ソフトウェアの自動テスト方法 | |
CN113127329B (zh) | 脚本调试方法、装置及计算机存储介质 | |
CN112612706A (zh) | 自动化测试方法、计算机设备及存储介质 | |
CN109684205B (zh) | 系统测试方法、装置、电子设备及存储介质 | |
US6993749B2 (en) | Conditional debug monitors | |
CN108132799B (zh) | 过程间静态程序分析信息提取方法、装置及设备 | |
CN113051582B (zh) | 一种计算机软件技术开发调试系统 | |
CN113608089B (zh) | 开关电源mos管的soa测试方法、系统、装置及可读存储介质 | |
CN113094258A (zh) | 精准测试方法、装置、计算机设备及介质 | |
CN114238110A (zh) | 软件应用测试方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |