CN116185882A - 软件调试方法、装置、设备及存储介质 - Google Patents
软件调试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116185882A CN116185882A CN202310474454.1A CN202310474454A CN116185882A CN 116185882 A CN116185882 A CN 116185882A CN 202310474454 A CN202310474454 A CN 202310474454A CN 116185882 A CN116185882 A CN 116185882A
- Authority
- CN
- China
- Prior art keywords
- debugging
- software
- block
- tested
- command
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012360 testing method Methods 0.000 claims abstract description 64
- 230000006870 function Effects 0.000 claims description 59
- 230000011218 segmentation Effects 0.000 claims description 47
- 238000000638 solvent extraction Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000003993 interaction Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
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/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种软件调试方法、装置、设备及存储介质,涉及自动化测试技术领域。该方法包括:若接收到针对待测试软件的第一命令,则从所述待测试软件的多个调试块中确定所述第一命令对应的至少一个调试块;其中,所述调试块中包括所述待测试软件对应的部分代码;根据所述第一命令,分别调用各所述调试块中的目标回调函数,对各所述调试块进行调试,得到各所述调试块的调试结果。相对于现有技术,避免了调试和解决问题的难度大的问题。
Description
技术领域
本申请涉及自动化测试技术领域,具体而言,涉及一种软件调试方法、装置、设备及存储介质。
背景技术
随着工业软件计算需求的日益增加和软件功能的日益复杂,软件研发中出现的问题越来越难以被追踪和调查,软件的调试和问题的解决也出现了更大挑战。
在集成电路领域,超大集成电路大规模发展使得相应的软件的代码规模和复杂度也大幅度提高,同时由于在客户现场缺少研发环境,这也给研发人员发现和解决问题带了更多的困难。调试和解决问题的难度也相应大幅度提高。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种软件调试方法、装置、设备及存储介质,以解决现有技术中调试和解决问题的难度大的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请一实施例提供了一种软件调试方法,所述方法包括:
若接收到针对待测试软件的第一命令,则从所述待测试软件的多个调试块中确定所述第一命令对应的至少一个调试块;其中,所述调试块中包括所述待测试软件对应的部分代码;
根据所述第一命令,分别调用各所述调试块中的目标回调函数,对各所述调试块进行调试,得到各所述调试块的调试结果。
可选地,所述从所述待测试软件的多个调试块中确定所述第一命令对应的至少一个调试块,包括:
根据所述第一命令中的调试属性信息,从所述多个调试块中确定与所述调试属性信息匹配的所述至少一个调试块。
可选地,所述若接收到针对待测试软件的第一命令,则从所述待测试软件的多个调试块中确定所述第一命令对应的至少一个调试块之前,所述方法还包括:
根据多个预设分割语句,对所述待测试软件的代码进行分块处理,得到所述待测试软件的多个调试块;
配置各调试块对应的目标回调函数。
可选地,所根据多个预设分割语句,对所述待测试软件的代码进行分块处理,得到所述待测试软件的多个调试块之后,所述方法还包括:
根据接收到的针对所述调试块的第二命令,为所述调试块配置对应的调试属性信息。
可选地,所述调试属性信息包括下述至少一项:调试块的名称信息、调试块的内容信息、调试块的等级信息。
可选地,所述根据多个预设分割语句,对所述待测试软件的代码进行分块处理,得到所述待测试软件的多个调试块,包括:
根据多个预设分割语句,确定分割起始位置,并确定所述分割起始位置之后第一次出现的分割结束位置为目标分割结束位置;
确定所述分割起始位置和所述目标分割结束位置之间的代码为一个调试块。
可选地,所述从根据所述第一命令中的调试属性信息,从所述多个调试块中确定与所述调试属性信息匹配的所述至少一个调试块之前,所述方法还包括:
从所述待测试软件的多个调试块中,确定调试功能为开启状态,并且目标回调函数为开启状态的至少一个调试块。
可选地,所述方法还包括:
根据针对目标调试块的第三命令,对所述目标调试块中的调试功能的开启状态进行设置;
根据针对所述目标调试块的第四命令,对所述目标调试块中的各回调函数的开启状态进行设置。
第二方面,本申请另一实施例提供了一种软件调试装置,所述装置包括:确定模块和调试模块,其中:
所述确定模块,用于若接收到针对待测试软件的第一命令,则从所述待测试软件的多个调试块中确定所述第一命令对应的至少一个调试块;其中,所述调试块中包括所述待测试软件对应的部分代码;
所述调试模块,用根据所述第一命令,分别调用各所述调试块中的目标回调函数,对各所述调试块进行调试,得到各所述调试块的调试结果。
可选地,所述确定模块,具体用于根据所述第一命令中的调试属性信息,从所述多个调试块中确定与所述调试属性信息匹配的所述至少一个调试块。
可选地,所述装置还包括:分割模块和配置模块,其中:
所述分割模块,用于根据多个预设分割语句,对所述待测试软件的代码进行分块处理,得到所述待测试软件的多个调试块;
所述配置模块,用于配置各调试块对应的目标回调函数。
可选地,所述配置模块,具体用于根据接收到的针对所述调试块的第二命令,为所述调试块配置对应的调试属性信息。
可选地,所述调试属性信息包括下述至少一项:调试块的名称信息、调试块的内容信息、调试块的等级信息。
可选地,所述确定模块,具体用于根据多个预设分割语句,确定分割起始位置,并确定所述分割起始位置之后第一次出现的分割结束位置为目标分割结束位置;确定所述分割起始位置和所述目标分割结束位置之间的代码为一个调试块。
可选地,所述确定模块,具体用于从所述待测试软件的多个调试块中,确定调试功能为开启状态,并且目标回调函数为开启状态的至少一个调试块。
可选地,所述装置还包括:设置模块,用于根据针对目标调试块的第三命令,对所述目标调试块中的调试功能的开启状态进行设置;根据针对所述目标调试块的第四命令,对所述目标调试块中的各回调函数的开启状态进行设置。
第三方面,本申请另一实施例提供了一种软件调试设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当软件调试设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一所述方法的步骤。
第四方面,本申请另一实施例提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一所述方法的步骤。
本申请的有益效果是:采用本申请提供的软件调试方法,将一个待测试软件分为了多个调试块,也即一个待测试软件中的所有代码被分散在了多个调试块中,其中,每个调试块均可以被单独调试,或一次可以调试待测试软件中的多个调试块,在对调试块的调试过程中,在接收针对待测试软件的第一命令之后,从待测试软件的多个调试块中确定第一命令对应的至少一个调试块,随后根据第一命令分别调用各调试块中的目标回调函数,对各调试块进行测试,测到各调试块的调试结果,也即,在本申请的实施例中,待测试软件中的代码可以通过调试块的方式被分散开,从而实现一次调试仅针对待测试软件中的部分代码(至少一个调试块)进行调试,从而提高了调试的灵活性和可控性,并且降低了调试成本。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例提供的软件调试方法的流程示意图;
图2为本申请另一实施例提供的软件调试方法的流程示意图;
图3为本申请一实施例提供的软件调试装置的结构示意图;
图4为本申请另一实施例提供的软件调试装置的结构示意图;
图5为本申请一实施例提供的软件调试设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
如下结合多个具体的应用示例,对本申请实施例所提供的一种软件调试方法进行解释说明。图1为本申请一实施例提供的一种软件调试方法的流程示意图,如图1所示,该方法包括:
S101:若接收到针对待测试软件的第一命令,则从待测试软件的多个调试块中确定第一命令对应的至少一个调试块。
其中,调试块中包括待测试软件对应的部分代码。
在本申请的实施例中,用户针对待测试软件的调试操作均为通过工具命令语言(Tool Command Language,TCL)命令进行的,也即用户通过TCL命令就可以实现与待测试软件之间的交互。
S102:根据第一命令,分别调用各调试块中的目标回调函数,对各调试块进行调试,得到各调试块的调试结果。
采用本申请提供的软件调试方法,将一个待测试软件分为了多个调试块,也即一个待测试软件中的所有代码被分散在了多个调试块中,其中,每个调试块均可以被单独调试,或一次可以调试待测试软件中的多个调试块,在对调试块的调试过程中,在接收针对待测试软件的第一命令之后,从待测试软件的多个调试块中确定第一命令对应的至少一个调试块,随后根据第一命令分别调用各调试块中的目标回调函数,对各调试块进行测试,测到各调试块的调试结果,也即,在本申请的实施例中,待测试软件中的代码可以通过调试块的方式被分散开,从而实现一次调试仅针对待测试软件中的部分代码(至少一个调试块)进行调试,从而提高了调试的灵活性和可控性,并且降低了调试成本。
可选地,在上述实施例的基础上,本申请实施例还可提供一种软件调试方法,如下结合附图对上述方法中确定不同的多个场景类型对应的目标界面图像的实现过程进行示例说明。图2为本申请另一实施例提供的一种软件调试方法的流程示意图,如图2所示,S101之前,该方法还可包括:
S111:根据多个预设分割语句,对待测试软件的代码进行分块处理,得到待测试软件的多个调试块。
在本申请的实施例中,对待测试软件进行分块处理的方式录入可以为根据待测试软件中的多个步骤进行分块,待测试软件的执行可以分成很多步骤,每个步骤又可以分成更小的多个步骤,因为有的步骤可能涉及循环,也即有的步骤可能被执行多次,但是这些不同的执行也可以认为是不同的步骤,在一些可能的实施例中,例如可以根据不同的步骤为依据,将一个或多个步骤对应的代码记为一个调试块。
或者,在另一些可能的实施例中,可以通过用户自定义的方式来对待测试软件中的代码进行分块,用户可以调用预设的配置接口来对待测试软件的代码进行自定义分块,每一个自定义分块均称为一个调试块,在本申请的实施例中,自定义分块的方式例如可以为:根据多个预设分割语句,确定分割起始位置,并确定分割起始位置之后第一次出现的分割结束位置为目标分割结束位置;确定分割起始位置和目标分割结束位置之间的代码为一个调试块。举例说明,分块方式例如可以为:根据预设分割语句start和end,对待测试软件中的代码进行分块,随后可以通过TCL命令来与其进行交互,从而实现对目标调试块进行追踪、调试以及调用自定义调试回调函数等。
这样的分块方式用户可以根据自己的需求和待测试软件的功能模块对待测试软件代码进行自定义分块,以使得后续用户可以对各调试块进行功能的追踪或调试。
S112:配置各调试块对应的目标回调函数。
在本申请的实施例中,为各调试块配置对应的目标回调函数之后,使得各调试块可以基于TCL命令实现对目标回调函数的调用,从而实现通过调用目标回调函数来对各调试块进行功能的测试和调试。
在另一些可能的实施例中,还需要根据接收到的针对调试块的第二命令,为调试块配置对应的调试属性信息。
其中,调试属性信息例如可以包括下述至少一项:调试块的名称信息、调试块的内容信息、调试块的等级信息。
举例说明,一个调试块(Step)可以包含如下信息:
名称信息(Name),调试块的名称,可以用来查到和匹配相应的调试块,在本申请的实施例中,调试块的名称信息是唯一对应的,也即,在同一个待测试软件中,不同的调试块具有不同的名称,各调试块之间的名称互不相同;
内容信息(Detail string),调试块中代码的细节信息,可以用来查到和匹配相应的调试块;
类型信息(Type),调试块的开始/结束类型;例如,该调试块的开始和结束是执行一次就自动结束,还是需要执行预设时间后再结束,还是需要执行预设次数后再结束等;均可以根据用户需要灵活调整和设置;
回调函数的信息(Callback),调试回调函数,支持C/C++语言和Tcl命令下的回调函数;
调试信息(Debug message),在调试块输出的调试信息等。
在本申请的实施例中,Debug message的可以对待测试软件的调试信息进行统一管理,并提供相应的接口对调试信息的调试等级进行设置,以对调试信息进行管理和输出,例如可以通过TCL命令对相应的调试块的等级进行相应的设置,当调试信息的调试等级小于或等于调试块的调试等级的时候,则可以对相应的调试块进行调试信息的输出,举例说明,例如当通过tcl命令设置stepl的调试等级如下:
“Step
Name:step1
Debug Message:“Step1 Info”(Level=3)。”
也即,当前用户通过tcl命令设置stepl的调试等级大于等于3的时候,调试信息“Stepl Info”将会被打印输出。
在本申请的实施例中,确定与调试属性信息匹配的至少一个调试块之前,还需要从待测试软件的多个调试块中,确定调试功能为开启状态,并且目标回调函数为开启状态的至少一个调试块。
其中,目标调试块中的调试功能和回调函数的开启状态也均为用户通过TCL命令来设置的,设置方式例如可以为:根据针对目标调试块的第三命令,对目标调试块中的调试功能的开启状态进行设置;根据针对目标调试块的第四命令,对目标调试块中的各回调函数的开启状态进行设置。
也即,本申请中的Debug message是通过TCL命令来与待测试软件之间进行交互的,其交互方式和交互内容具体可以包括:
1)设置调试块的调试等级,通过调用相应命令设置调试块的调试等级,从而控制追踪调试块的代码行为和控制调试块的调试操作。
2)自定义调试回调函数。通过自定义调试回调函数,研发人员可以定制需要的调试功能,比如打印,输出,统计,对比等等操作。自定义调试回调函数,在完成注册和启动等操作后,通过命令可以在调试块进行调用。
3)注册自定义调试回调函数到指定调试块。通过命令把自定义的调试函数注册到某些指定的调试块,从而使在运行到调试块的时能够识别需要的调试回调函数。
4)通过命令打开和关闭调用指定的调试块里指定的回调函数。
5)通过命令打开和关闭调试块的调试功能。
6)命令在匹配和查找相应的调试块时候,支持通配符查找。
采用本申请提供的方法,实现了对于一个具有巨大代码量的待测试软件,用户无需每次测试均针对整个待测试软件,而是可以将其拆分为多个调试块,对于每个调试块,用户可以以调试块为单位进行观察, 从而实现快速调试,并且可以看到调试过程中的中间结果,从而追踪可能出现问题的情况;并且对于一个待测试软件中的不同功能,用户也可以进行追踪和观察,从而使得用户可以直接通过脚本来实现自定义对待测试软件中部分代码进行观察或测试或操控,使得用户对待测试软件测试的过程中的可操作性以及可控性更强。
采用本申请实施例提供的软件调试方法,不但可以根据用户的需求和软件功能模块对软件代码进行自定义分块,并且对于各个自定义分块得到的调试块,还提供包括对调试块内代码功能的追踪、打印、输出以及自定义的辅助调试等功能,此外本申请还对调试信息集中管理,提供按模块输出调试信息,分等级输出调试信息,以及两者相结合输出调试信息的功能,通过使用TCL命令实现与待测试软件之间的交互,并且提供用户自定义调试回调函数的功能,可以按模块调用调试函数和分等级调用调试函数。
下述结合附图对本申请所提供的软件调试装置进行解释说明,该软件调试装置可执行上述图1-图2任一软件调试方法,其具体实现以及有益效果参照上述,如下不再赘述。
图3为本申请一实施例提供的软件调试装置的结构示意图,如图4所示,该装置包括:确定模块201和调试模块202,其中:
确定模块201,用于若接收到针对待测试软件的第一命令,则从待测试软件的多个调试块中确定第一命令对应的至少一个调试块;其中,调试块中包括待测试软件对应的部分代码;
调试模块202,用根据第一命令,分别调用各调试块中的目标回调函数,对各调试块进行调试,得到各调试块的调试结果。
可选地,确定模块201,具体用于根据第一命令中的调试属性信息,从多个调试块中确定与调试属性信息匹配的至少一个调试块。
可选地,在上述实施例的基础上,本申请实施例还可提供一种软件调试装置,如下结合附图对上述图3给出的装置的实现过程进行示例说明。图4为本申请另一实施例提供的软件调试装置的结构示意图,如图4所示,该装置还包括:分割模块203和配置模块204,其中:
分割模块203,用于根据多个预设分割语句,对待测试软件的代码进行分块处理,得到待测试软件的多个调试块;
配置模块204,用于配置各调试块对应的目标回调函数。
可选地,配置模块204,具体用于根据接收到的针对调试块的第二命令,为调试块配置对应的调试属性信息。
可选地,调试属性信息包括下述至少一项:调试块的名称信息、调试块的内容信息、调试块的等级信息。
可选地,确定模块201,具体用于根据多个预设分割语句,确定分割起始位置,并确定分割起始位置之后第一次出现的分割结束位置为目标分割结束位置;确定分割起始位置和目标分割结束位置之间的代码为一个调试块。
可选地,确定模块201,具体用于从待测试软件的多个调试块中,确定调试功能为开启状态,并且目标回调函数为开启状态的至少一个调试块。
如图4所示,该装置还包括:设置模块205,用于根据针对目标调试块的第三命令,对目标调试块中的调试功能的开启状态进行设置;根据针对目标调试块的第四命令,对目标调试块中的各回调函数的开启状态进行设置。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器,或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图5为本申请一实施例提供的软件调试设备的结构示意图,该软件调试设备可以集成于终端设备或者终端设备的芯片。
如图5所示,该软件调试设备包括:处理器501、总线502和存储介质503。
处理器501用于存储程序,处理器501调用存储介质503存储的程序,以执行上述图1-图2对应的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种程序产品,例如存储介质,该存储介质上存储有计算机程序,包括程序,该程序在被处理器运行时执行上述方法对应的实施例。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种软件调试方法,其特征在于,所述方法包括:
若接收到针对待测试软件的第一命令,则从所述待测试软件的多个调试块中确定所述第一命令对应的至少一个调试块;其中,所述调试块中包括所述待测试软件对应的部分代码;
根据所述第一命令,分别调用各所述调试块中的目标回调函数,对各所述调试块进行调试,得到各所述调试块的调试结果。
2.如权利要求1所述的方法,其特征在于,所述从所述待测试软件的多个调试块中确定所述第一命令对应的至少一个调试块,包括:
根据所述第一命令中的调试属性信息,从所述多个调试块中确定与所述调试属性信息匹配的所述至少一个调试块。
3.如权利要求1所述的方法,其特征在于,所述若接收到针对待测试软件的第一命令,则从所述待测试软件的多个调试块中确定所述第一命令对应的至少一个调试块之前,所述方法还包括:
根据多个预设分割语句,对所述待测试软件的代码进行分块处理,得到所述待测试软件的多个调试块;
配置各调试块对应的目标回调函数。
4.如权利要求3所述的方法,其特征在于,所根据多个预设分割语句,对所述待测试软件的代码进行分块处理,得到所述待测试软件的多个调试块之后,所述方法还包括:
根据接收到的针对所述调试块的第二命令,为所述调试块配置对应的调试属性信息。
5.如权利要求4所述的方法,其特征在于,所述调试属性信息包括下述至少一项:调试块的名称信息、调试块的内容信息、调试块的等级信息。
6.如权利要求2所述的方法,其特征在于,所述根据多个预设分割语句,对所述待测试软件的代码进行分块处理,得到所述待测试软件的多个调试块,包括:
根据多个预设分割语句,确定分割起始位置,并确定所述分割起始位置之后第一次出现的分割结束位置为目标分割结束位置;
确定所述分割起始位置和所述目标分割结束位置之间的代码为一个调试块。
7.如权利要求2所述的方法,其特征在于,所述根据所述第一命令中的调试属性信息,从所述多个调试块中确定与所述调试属性信息匹配的所述至少一个调试块之前,所述方法还包括:
从所述待测试软件的多个调试块中,确定调试功能为开启状态,并且目标回调函数为开启状态的至少一个调试块。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
根据针对目标调试块的第三命令,对所述目标调试块中的调试功能的开启状态进行设置;
根据针对所述目标调试块的第四命令,对所述目标调试块中的各回调函数的开启状态进行设置。
9.一种软件调试装置,其特征在于,所述装置包括:确定模块和调试模块,其中:
所述确定模块,用于若接收到针对待测试软件的第一命令,则从所述待测试软件的多个调试块中确定所述第一命令对应的至少一个调试块;其中,所述调试块中包括所述待测试软件对应的部分代码;
所述调试模块,用根据所述第一命令,分别调用各所述调试块中的目标回调函数,对各所述调试块进行调试,得到各所述调试块的调试结果。
10.一种软件调试设备,其特征在于,所述设备包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述软件调试设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行上述权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310474454.1A CN116185882A (zh) | 2023-04-28 | 2023-04-28 | 软件调试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310474454.1A CN116185882A (zh) | 2023-04-28 | 2023-04-28 | 软件调试方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185882A true CN116185882A (zh) | 2023-05-30 |
Family
ID=86452736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310474454.1A Pending CN116185882A (zh) | 2023-04-28 | 2023-04-28 | 软件调试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185882A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050039169A1 (en) * | 2003-08-14 | 2005-02-17 | Yu-Cheng Hsu | Integrated source code debugging apparatus method and system |
CN113064838A (zh) * | 2021-05-07 | 2021-07-02 | 阿里云计算有限公司 | 一种代码调试方法、装置、用户设备、服务端及存储介质 |
CN113722204A (zh) * | 2020-05-26 | 2021-11-30 | 华为技术有限公司 | 一种应用调试方法、系统、设备及介质 |
CN115168217A (zh) * | 2022-07-19 | 2022-10-11 | 上海哔哩哔哩科技有限公司 | 源代码文件的缺陷发现方法及装置 |
-
2023
- 2023-04-28 CN CN202310474454.1A patent/CN116185882A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050039169A1 (en) * | 2003-08-14 | 2005-02-17 | Yu-Cheng Hsu | Integrated source code debugging apparatus method and system |
CN113722204A (zh) * | 2020-05-26 | 2021-11-30 | 华为技术有限公司 | 一种应用调试方法、系统、设备及介质 |
CN113064838A (zh) * | 2021-05-07 | 2021-07-02 | 阿里云计算有限公司 | 一种代码调试方法、装置、用户设备、服务端及存储介质 |
CN115168217A (zh) * | 2022-07-19 | 2022-10-11 | 上海哔哩哔哩科技有限公司 | 源代码文件的缺陷发现方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032825B (zh) | 一种故障注入方法、装置及设备 | |
CN110750592B (zh) | 数据同步的方法、装置和终端设备 | |
CN111124906A (zh) | 基于动态埋点的跟踪方法、编译方法、装置和电子设备 | |
CN108874470B (zh) | 一种信息处理方法及服务器、计算机存储介质 | |
US20170270229A1 (en) | Information processing method and device and computer storage medium | |
US20070079288A1 (en) | System and method for capturing filtered execution history of executable program code | |
CN110196809B (zh) | 接口测试方法及装置 | |
CN111538659B (zh) | 业务场景的接口测试方法、系统、电子设备和存储介质 | |
US20120151268A1 (en) | System, method, and computer program product for error code injection | |
CN113076253A (zh) | 一种测试方法和测试装置 | |
CN109542444B (zh) | Java应用的监控方法、装置、服务器和存储介质 | |
CN109491909A (zh) | 一种cpld刷新验证方法、装置、终端及存储介质 | |
CN109902001B (zh) | 对未初始化变量的检测方法及终端设备 | |
CN116097226A (zh) | 用于将故障注入分布式系统的装置和方法 | |
CN116185882A (zh) | 软件调试方法、装置、设备及存储介质 | |
CN113656322B (zh) | 数据处理方法、装置、电子设备及计算机存储介质 | |
CN113378182B (zh) | 一种提权漏洞检测方法、装置、设备及介质 | |
CN111143193B (zh) | 基于RobotFramework的大数据服务测试方法、系统、终端及存储介质 | |
CN113127329B (zh) | 脚本调试方法、装置及计算机存储介质 | |
CN108959070B (zh) | 一种基于代码对象的Python钩子函数方法和装置 | |
CN112612474A (zh) | 产品移植方法、装置、存储介质和电子设备 | |
WO2021247074A1 (en) | Resumable instruction generation | |
CN112346994A (zh) | 一种测试信息关联方法、装置、计算机设备及存储介质 | |
CN107451050B (zh) | 函数获取方法和装置、服务器 | |
Clements et al. | Is your firmware real or re-hosted?. |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230530 |