【技术实现步骤摘要】
一种基于扩展脚本的软件断点调试方法、装置
本专利技术涉及计算机程序调试
,具体涉及一种基于扩展脚本的软件断点调试方法、装置。
技术介绍
软件是一系列按照特定顺序组织的计算机数据和指令的集合,而软件开发是指根据用户需求建造出软件系统或者系统中的软件部分的过程,是一项包括需求捕捉、需求分析、设计、实现、调试和测试的系统工程。在软件开发及使用过程中,不可避免的会出现各种意料之外的软件问题,现有的用于定位软件问题的方法包括运行日志分析、内存DUMP分析和代码单步调试。上述定位软件问题的缺陷在于:(1)运行日志需要将产生日志的调试指令通过硬编码的方式预先写入软件程序的相应位置。通过硬编码写入的调试指令不易更改和删除,且需要对写入调试指令的软件程序重新进行编译、链接和运行,原先软件错误的运行环境可能发生丢失/改变,使软件错误不易复现。(2)内存DUMP分析需要将当前的整块占用内存保存一份到磁盘上,每次分析都需要占用大量内存,并且分析结果是静态的,若要查看动态数据,需要重复执行内存DUMP的步骤。(3)代码调试需要拥 ...
【技术保护点】
1.一种基于扩展脚本的软件断点调试方法,其特征在于,该方法包括:/n扩展脚本生成步骤,将编译型语言编写的软件的一功能使用解释语言编写实现该功能的扩展脚本,并在该扩展脚本中添加调试锚点;/n转换步骤,将所述功能涉及的编译型语言编写的软件的链接库转换为解释语言可调用的链接库;/n调试步骤,通过调试器基于所述扩展脚本中添加调试锚点对软件进行断点调试。/n
【技术特征摘要】
1.一种基于扩展脚本的软件断点调试方法,其特征在于,该方法包括:
扩展脚本生成步骤,将编译型语言编写的软件的一功能使用解释语言编写实现该功能的扩展脚本,并在该扩展脚本中添加调试锚点;
转换步骤,将所述功能涉及的编译型语言编写的软件的链接库转换为解释语言可调用的链接库;
调试步骤,通过调试器基于所述扩展脚本中添加调试锚点对软件进行断点调试。
2.根据权利要求1的方法,其特征在于:所述编译型语言为C++,所述解释语言Python,所述调试器为Python调试器。
3.根据权利要求2的方法,其特征在于:所述扩展脚本生成步骤的操作为:定义所述软件的接口集合F={f1,f2,f3,…,fn-1,fn},其中f为细粒度的函数接口;扩展脚本的接口集合P={p1,p2,p3,…,pn-1,pn},p为扩展脚本的函数接口,其中pi和fi功能上对应,1≤i≤n;定义实现所述软件的一功能所需的接口集合为S,且S∈P;基于所述S编写实现所述功能的扩展脚本,并在扩展脚本的代码入口处加上调试锚点X。
4.根据权利要求3的方法,其特征在于:所述转换步骤的操作为:将所述功能涉及的编译型语言C++编写的软件的链接库DLL转换为解释语言Python可调用的链接库pyd。
5.根据权利要求4的方法,其特征在于:所述调试步骤的操作为:在所述软件的界面上启动调试操作以打开Python调试器,同时执行所述扩展脚本,所述扩展脚本在锚点X处等待外部附加调试;Python调试器执行附加调试,所述扩展脚本的代码中断在锚点X的下一行;Python调试器进行单步执行,当执行到函数px时,将px的参数转换为C++的参数,并把转换后的C++的参数传递给函数fx执行;将函数fx执行后的结果转换为Python形式通过px返回,并将各变量的结果在Python调试器显示。
<...
【专利技术属性】
技术研发人员:苏再添,黄志炜,孙善为,
申请(专利权)人:厦门市美亚柏科信息股份有限公司,
类型:发明
国别省市:福建;35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。