[发明专利]脚本语言代码调试方法及装置、可读存储介质及电子设备在审
申请号: | 202110635215.0 | 申请日: | 2021-06-08 |
公开(公告)号: | CN113342654A | 公开(公告)日: | 2021-09-03 |
发明(设计)人: | 明畅;田宛欣 | 申请(专利权)人: | 广州博冠信息科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京律智知识产权代理有限公司 11438 | 代理人: | 王辉;阚梓瑄 |
地址: | 510000 广东省广州市天*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 脚本语言 代码 调试 方法 装置 可读 存储 介质 电子设备 | ||
本公开涉及计算机技术领域,提供了一种脚本语言代码调试方法及装置、计算机存储介质和电子设备。其中,上述方法包括:获取当前在虚拟机中被执行的操作码的第一位置属性,第一位置属性包括操作码所属的目标脚本代码文件的标识和操作码对应的脚本代码在目标脚本代码文件中的位置信息;将第一位置属性和预设断点存储容器中配置的断点的第二位置属性进行匹配;在匹配成功时,调用预设断点跳转函数以在操作码处触发断点调试功能。本公开基于在预设断点存储容器中配置断点的位置属性,可以提高脚本语言代码的调试效率。
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种脚本语言代码调试方法、脚本语言代码调试装置、计算机可读存储介质以及电子设备。
背景技术
LPC语言(由Lars Pensjǒ开发的编程语言)是在C语言语法的基础上发展出来的脚本语言。作为脚本语言,LPC代码的编译和执行都由其专门的引擎驱动程序来实现。而代码的编写不可避免会产生错误,当错误发生时程序员需要对代码进行调试。
相关技术中,使用GDB工具(GDB是GNU开源组织发布的一个UNIX下的程序调试工具)对在引擎虚拟机中执行的LPC脚本进行调试。由于虚拟机执行的LPC脚本对应的当前的opcode(操作码)无论属于哪个LPC文件的哪一行,在虚拟机中的执行位置都是一样的。因此,使用GDB在指定的LPC文件和行号处设置断点时,需要在LPC文件的不同地方插入对应的断点设置代码。
然而,这种方式需要人工添加断点设置代码,且在调试完成后,需要人工对添加的调试代码进行删除,以防止和原本的代码进行混淆,因此极大的降低了LPC代码的调试效率。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种脚本语言代码调试方法及装置、计算机可读存储介质及电子设备,进而至少在一定程度上克服相关技术中直接使用GDB工具对脚本语言代码调试时效率低下的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供了一种脚本语言代码调试方法,包括:
获取当前在虚拟机中被执行的操作码的第一位置属性,所述第一位置属性包括所述操作码所属的目标脚本代码文件的标识和所述操作码对应的脚本代码在所述目标脚本代码文件中的位置信息;
将所述第一位置属性和预设断点存储容器中配置的断点的第二位置属性进行匹配;
在匹配成功时,调用预设断点跳转函数以在所述操作码处触发断点调试功能。
在本公开的一种示例性实施例中,基于前述方案,所述预设断点存储容器包括预设断点存储数组,所述预设断点存储数组中每个元素存储的断点数据包括所述断点的第二位置属性和所述元素的断点状态;
其中,所述断点的第二位置属性包括断点所属的脚本代码文件的标识和断点在所述脚本代码文件中的位置信息;
所述元素的断点状态包括未存储断点或存储的断点已被移除的第一状态、已存储断点且已存储的断点无效的第二状态、已存储断点且已存储的断点有效的第三状态。
在本公开的一种示例性实施例中,基于前述方案,所述方法还包括:
响应于添加目标断点的操作指令,根据元素的索引值的升序顺序遍历所述预设断点存储数组中的元素,在遍历到断点状态为第一状态的元素时,将所述目标断点的第二位置属性存储至所述元素中,并将所述元素的断点状态重新配置为第三状态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州博冠信息科技有限公司,未经广州博冠信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110635215.0/2.html,转载请声明来源钻瓜专利网。