脚本调试方法、设备及计算机存储介质技术

技术编号:21184224 阅读:39 留言:0更新日期:2019-05-22 14:58
本发明专利技术实施例公开了脚本调试方法、设备及计算机存储介质,其中所述方法包括:设备获取调试指令,所述调试指令携带有待调试的目标行断点,所述目标行断点至少包括用于指示请求调试脚本文件中断点位置所在行代码的行信息;在确定满足断点调试条件的情况下,显示调试结果,所述调试结果包括所述设备对所述目标行断点对应的行代码执行断点处理时所获得的信息,所述断点调试条件至少包括目标接口断点与目标局部变量各自对应的标识信息一致。采用本发明专利技术实施例,能够在不修改脚本引擎具备调试功能的情况下,实现脚本调试、问题位置的快速定位等功能。

Script debugging methods, devices and computer storage media

The embodiment of the present invention discloses a script debugging method, a device and a computer storage medium. The method includes: the device acquires debugging instructions, the debugging instructions carry target line breakpoints to be debugged, and the target line breakpoints include at least line information for indicating the location of breakpoints in the request debugging script file; and the determination of the conditions for debugging breakpoints. Next, the debugging results are displayed. The debugging results include the information obtained when the device performs breakpoint processing on the line code corresponding to the target line breakpoint. The debugging conditions of the breakpoint include at least the identifying information corresponding to the target interface breakpoint and the target local variable. With the embodiment of the present invention, the functions of script debugging, fast positioning of problem location and so on can be realized without modifying the debugging function of the script engine.

【技术实现步骤摘要】
脚本调试方法、设备及计算机存储介质
本专利技术涉及计算机
,尤其涉及脚本调试方法、设备及计算机存储介质。
技术介绍
脚本是使用一种特定描述性语言,依据一定格式编写的可执行文件,又被称为宏或批处理文件。该描述语言也被称为脚本语言(Scriptlanguages),它是为了缩短传统的编写、编译、链接、运行过程而创建的计算机编程语言。其中,脚本可理解为一种纯文本保存的程序,可由一系列计算机能执行的操作命令组成。脚本执行过程中,通过需要借助脚本引擎来完成;不同类型的脚本需要不同的脚本引擎,只有在脚本和脚本引擎匹配时,才能正确编译脚本。现有技术提供的脚本调试方案具体为:在启动脚本引擎时,需开启监听接口,监听待执行的调试命令;调试器通过该监听接口与设备中的容器通信,以实现相应地代码调试。在实践中发现,监听接口与用于脚本调试时所使用的调试接口(如JDI接口)是独立的、不一致的。每个监听接口仅允许调试一种脚本。如果同时需要调试多种脚本时,在脚本引擎中需设计多个监听接口;其中,一种脚本文件对应一个监听接口,不同监听接口间不能相互调用,且脚本引擎还需具备调试功能。这样在脚本引擎中将存在多个监听接口,增加设计难度和人力成本。此外,目前很多脚本引擎中并没有提供调试功能,通常采用日志分析的方式确定是否出现问题,其不能直接定位到问题出现的位置;或者后续研发人员通过二分法,删除部分脚本后重新执行以找出问题的位置,但这种方法将延长研发时间、降低效率。相应地,如果让调试引擎具备调试功能,则需修改调试引擎的代码,由于脚本引擎通常是开源代码设计的,增加调试功能比较困难且还容易导致调试引擎运行出错。因此需提出一种在不修改脚本引擎的代码时,也能实现脚本调试、快速定位问题位置的方案。
技术实现思路
本专利技术实施例公开了脚本调试方法、设备及计算机存储介质,能够实现在不修改调试器(脚本引擎)代码的情况下,让不具备调试功能的调试器也能实现脚本调试、快速定位问题位置等功能。第一方面,本专利技术实施例公开提供了一种脚本调试方法,所述方法包括:设备获取调试指令,所述调试指令携带有待调试的目标行断点,所述目标行断点至少包括用于指示请求调试脚本文件中断点位置所在行代码的行信息;在确定满足断点调试条件的情况下,显示调试结果,所述调试结果包括所述设备对所述目标行断点对应的行代码执行断点处理时所获得的信息,所述断点调试条件至少包括目标接口断点与目标局部变量各自对应的标识信息一致,所述目标接口断点是根据所述目标行断点确定的,所述目标局部变量是根据与所述目标行断点关联的上下行代码确定的。第二方面,本专利技术实施例公开了一种脚本调试方法,所述方法包括:调试器接收调试触发指令,所述调试触发指令携带有触发待调试的目标接口断点,所述目标接口断点是根据待调试的目标行断点确定的,所述目标行断点至少包括用于指示请求调试脚本文件中断点位置所在行代码的行信息;在确定满足断点调试条件的情况下,显示调试结果,所述调试结果包括所述设备对所述目标行断点对应的行代码执行断点处理时所获得的信息,所述断点调试条件至少包括目标接口断点与目标局部变量各自对应的标识信息一致,所述目标接口断点是根据所述目标行断点确定的,所述目标局部变量是根据与所述目标行断点关联的上下行代码确定的。在一些可能的实施例中,所述方法还包括:获取调试指令,所述调试指令携带有待调试的所述目标行断点;向与所述调试器连接的容器发送调试请求指令,所述调试请求指令携带有所述目标接口断点,以在所述容器执行到所述目标接口断点所对应的断点位置时,向所述调试器发送所述调试触发指令。在一些可能的实施例中,在所述调试指令为单步调试指令时,所述调试指令还携带有所述目标行断点关联的候选调试信息,所述调试触发指令还携带有候选接口断点;其中,所述候选接口断点是根据所述候选调试信息确定的,所述候选调试信息至少包括所述脚本文件中所述目标行断点关联的下一待执行的行代码的行信息。结合第一方面或第二方面,在一些可能的实施例中,所述目标接口断点是根据预存的与所述目标行断点所在行代码所对应的目标类信息确定的,所述目标接口断点为所述设备中调试接口所能识别的断点。结合第一方面或第二方面,在一些可能的实施例中,所述方法还包括:创建多个关键信息与多个类信息之间关联关系,所述多个关键信息与多个行断点关联,所述多个行断点至少包括所述目标行断点,所述多个类信息至少包括所述目标类信息。结合第一方面或第二方面,在一些可能的实施例中,所述在确定满足断点调试条件的情况下,显示调试结果包括:遍历所述脚本文件中所有的行断点,在查找到存在与所述目标行断点对应的目标类信息的情况下,确定与所述目标行断点对应的目标局部变量的标识信息;在所述目标局部变量的标识信息与所述目标接口断点的标识信息一致的情况下,显示调试结果。结合第一方面或第二方面,在一些可能的实施例中,所述方法还包括:创建多个关键信息与多个局部变量之间的映射关系,所述多个关键信息与多个行断点关联,所述多个行断点至少包括所述目标行断点,所述多个局部变量至少与所述目标行断点对应的目标局部变量。结合第一方面或第二方面,在一些可能的实施例中,所述标识信息包括:行信息和/或ID信息。结合第一方面或第二方面,在一些可能的实施例中,所述调试指令包括以下中的任一项:断点调试指令、单步调试指令、函数进入指令。结合第一方面或第二方面,在一些可能的实施例中,所述调试结果包括以下中的至少一项:焦点位置信息、堆栈调用信息以及局部变量信息;所述焦点位置信息用于指示所述脚本文件中所述目标行断点所在的行信息,所述堆栈调用信息用于指示调试所述脚本文件时所需调用的堆栈信息,所述堆栈信息至少包括所述目标行断点对应的行代码,所述局部变量信息包括所述目标局部变量在内的至少一个局部变量,所述局部变量是根据所述目标行断点对应的行代码以及与所述行代码关联的上下行代码计算获得的。结合第一方面或第二方面,在一些可能的实施例中,所述方法还包括:在确定不满足断点调试条件的情况下,从所述目标行断点对应的行代码开始恢复执行所述脚本文件。第三方面,本专利技术实施例公开提供了一种设备,包括用于执行上述第一方面的方法的功能单元。第四方面,本专利技术实施例公开提供了一种调试器,包括用于执行上述第二方面的方法的功能单元。第五方面,本专利技术实施例公开提供了一种脚本调试系统,包括调试器和容器;所述调试器为如上第四方面所述提供的调试器;所述容器用于在脚本文件中执行到与目标接口断点对应的断点位置时,向调试器发送调试触发指令,所述调试触发指令携带有触发待调试的目标接口断点,所述目标接口断点是根据待调试的目标行断点确定的,所述目标行断点至少包括用于指示请求调试脚本文件中断点位置所在行代码的行信息。可选地,所述容器用于接收所述调试器发送的调试请求指令,所述调试请求指令携带有所述目标接口断点;存储所述目标行断点,以在所述容器执行到所述目标接口断点所对应的断点位置时,向所述调试器发送所述调试触发指令。关于本专利技术未示出或未描述的内容可参见前述实施例中的相关介绍这里不再赘述。第六方面,本专利技术实施例提供了一种设备,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器本文档来自技高网
...

【技术保护点】
1.一种脚本调试方法,其特征在于,所述方法包括:设备获取调试指令,所述调试指令携带有待调试的目标行断点,所述目标行断点至少包括用于指示请求调试脚本文件中断点位置所在行代码的行信息;在确定满足断点调试条件的情况下,显示调试结果,所述调试结果包括所述设备对所述目标行断点对应的行代码执行断点处理时所获得的信息,所述断点调试条件至少包括目标接口断点与目标局部变量各自对应的标识信息一致,所述目标接口断点是根据所述目标行断点确定的,所述目标局部变量是根据与所述目标行断点关联的上下行代码确定的。

【技术特征摘要】
1.一种脚本调试方法,其特征在于,所述方法包括:设备获取调试指令,所述调试指令携带有待调试的目标行断点,所述目标行断点至少包括用于指示请求调试脚本文件中断点位置所在行代码的行信息;在确定满足断点调试条件的情况下,显示调试结果,所述调试结果包括所述设备对所述目标行断点对应的行代码执行断点处理时所获得的信息,所述断点调试条件至少包括目标接口断点与目标局部变量各自对应的标识信息一致,所述目标接口断点是根据所述目标行断点确定的,所述目标局部变量是根据与所述目标行断点关联的上下行代码确定的。2.根据权利要求1所述的方法,其特征在于,所述目标接口断点是根据预存的与所述目标行断点所在行代码所对应的目标类信息确定的,所述目标接口断点为所述设备中调试接口所能识别的断点。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:创建多个关键信息与多个类信息之间关联关系,所述多个关键信息与多个行断点关联,所述多个行断点至少包括所述目标行断点,所述多个类信息至少包括所述目标类信息。4.根据权利要求3所述的方法,其特征在于,所述在确定满足断点调试条件的情况下,显示调试结果包括:遍历所述脚本文件中所有的行断点,在查找到存在与所述目标行断点对应的目标类信息的情况下,确定与所述目标行断点对应的目标局部变量的标识信息;在所述目标局部变量的标识信息与所述目标接口断点的标识信息一致的情况下,显示调试结果。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:创建多个关键信息与多个局部变量之间的映射关系,所述多个关键信息与多个行断点关联,所述多个行断点至少包括所述目标行断点,所述多个局部变量至少与所述目标行断点对应的目标局部变量。6.根据权利要求1-5中任一项所述的方法,其特征在于,所述标识信息包括:行信息和/或ID信息。7.根据权利要求1-6中任一项所述的方法,其特征在于,所述调试指令包括以下中的任一项:断点调试指令、单步调试指令、函数进入指令。8.根据权利要求1-7中任一项所述的方法,其特征在于,所述调试结果包括以下中的至少一项:焦点位置信息、堆栈调用信息以及局部变量信息;所述焦点位置信息用于指示所述脚本文件中所述目标行断点所在的行信息,所述堆栈调用信息用于指示调试所述脚本文件时所需调用的堆栈信息,所述堆栈信息至少包括所述目标行断点对应的行代码,所述局部变量信息包括所述目标局部变量在内的至少一个局部变量,所述局部变量是根据所述目标行断点对应的行代码以及与所述行代码关联的上下行代码计算获得的。9.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:在确定不满足断点调试条件的情况下,从所述目标行断点对应的行代码开始恢复执行所述脚本文件。10.一种脚本调试方法,其特征在于,所述方法包括:调试器接收调试触发指令,所述调试触发指令携带有触发待调试的目标接口断点,所述目标接口断点是根据待调试的目标行断点确定的,所述目标行断点至少包括用于指示请求调试脚本文件中断点位置所在行代码的行信息;在确定满足断点调试条件的情况下,显示调试结果,所述调试结果包括所述设备对所述目标行断点对应的行代码执行断点处理时所获得的信息,所述断点调试条件至少包括目标接口断点与目标局部变量各自对应的标识信息一致,所述目...

【专利技术属性】
技术研发人员:陈勇迈克尔·麦基丹尼尔·迪尼戈
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1