本发明专利技术公开了一种基于解释型语言的异常断点调试方法,包括在一解释型语言的操作系统平台,虚拟机内部集成的调试服务模块处理异常断点,程序在发生异常位置自动停止执行。当调试服务模块停止指令解析时,服务器端的调试器将当前执行环境的上下文信息发送给客户端,实现异常的快速定位。与现有技术相比,本发明专利技术的调试方法通过使能异常断点,启动异常断点调试功能,开发人员可以快速高效地定位应用程序中出现的异常,方便开发人员对应用程序的调试,极大地提高了调试效率。
【技术实现步骤摘要】
本专利技术涉及一种基于解释型语言的调试方法,尤其是涉及一种基于Java卡的解释型编程语言的异常断点调试方法。
技术介绍
集成各种App应用的智能卡给人们的生活带来很大便利,Java卡是在智能卡技术的基础上发展起来的,是Java技术和智能卡技术的有机结合体。在国外,Java智能卡已广泛用于用户身份识别、交通、通信及金融等领域;在国内,Java智能卡的应用正呈现急剧增长的势头。Java智能卡充分利用了Java的平台无关性,使得Java技术“一次编写,随处运行”的思想在智能卡上得以实现。Java卡支持一卡多用和重用。其中,支持一卡多用是指Java卡上可以同时存在多个不同的应用,满足一张Java卡拥有不同功能的需求。例如,它可以同时兼有电子钱包和身份鉴别功能;重用是指Java卡上的应用可以根据需求删除或重新添加新的应用,无需更换新的智能卡,这样极大地增强智能卡应用的灵活性。Java卡集成的解释型语言的安全特性,使得开发出来的应用程序具有很高的安全性,在同类型产品里面具有更大的竞争力。在现有技术中,高安全性的Java卡应用程序需要开发人员根据指令及返回的错误信息,分析可能在源代码哪些位置发生异常,在所有可能的位置附近下断点。然后重发指令,当在某一断点停止后,再一步步跟踪,确定发生异常的
准确的位置。因此,亟待开发一种高效地基于解释型语言的异常断点调试方法。
技术实现思路
针对上述问题,本专利技术主要目的是提供一种有效提高调试效率的基于解释型语言程序的异常断点调试方法;本专利技术的另一个目的是提供一种便于开发人员对Java卡的异常断点进行快速调试的方法。为了实现上述的主要目的,本专利技术提供的基于Java卡的异常断点调试方法包括在一解释型语言的操作系统平台上,虚拟机内部集成的调试服务模块处理异常断点,程序在发生异常位置自动停止执行。当调试服务模块停止指令解析时,服务器端的调试器将当前执行环境的上下文信息发送给客户端,实现异常的快速定位。在应用程序单元中,客户端通过按键或其他方式使能/禁止异常断点。当服务器端接收到客户端发出的数据时,在使能异常断点的情况下:(1)取当前指令操作码;(2)解析指令,将指令寄存器中的指令操作码取出后进行译码,分析其指令的类型和操作数长度,PC指针指向下一条操作码的指令地址;(3)执行指令;(4)若异常抛出,返回当前执行Java卡程序的上下文信息给客户端,包括当前指令地址、调用栈等信息。否则,继续执行指令;(5)调试器客户端根据当前的上下文信息,结合调试组件信息进行解析;(6)定位触发异常的源代码所在的位置,并且显示发生异常时当前指令地址、调用栈的源代码及变量等信息。相对于现有技术,本专利技术的有益效果在于:本专利技术中基于解释型语言的异常断点调试方法,无需在应用程序中逐步追踪断点的异常情况,而是直接通过按键或者其他方式使能异常断点功能,实现快速定位触发异常的代码位置,极大地提高了调试效率。附图说明图1是本专利技术中异常断点调试流程图;图2是本专利技术实施例中服务器端与客户端的通信框图;图3是本专利技术实施例中服务器端与客户端的调试流程图。具体实施方式以下结合附图及实施例对本专利技术作进一步说明。本专利技术的调试方法是在Debugtool调试工具中,对Java卡的解释型语言进行异常断点调试。当IDE开发环境开始执行时,客户端立即向服务器端发送虚拟机可以识别的编程语言指令,后台启动虚拟机,虚拟机的调试服务模块加载Java卡应用程序至Java卡虚拟机内存中。应用程序调用install指令创建一个应用实例,给虚拟机发送select指令,来调用Java卡应用对象的接口。当应用程序传入APDU时,对command接口的不同的process指令进行处理。调试异常中断时,应用程序可以调用任意接口的指令信息。虚拟机将获得的异常中断的指令信息发送给客户端的指令模块,在IDE开发环境下指令模块对异常断点信息进行处理,即可定位开发人员编写的应用程序中触发异常的源代码所在的位置,完成程序的调试。如图2和图3所示。在安全可靠的运行环境JCRE下,Java虚拟机通过对main函数进行初始化,接收指令信息,来判断是否调用应用程序中的install、select、process等接口。服务器端根据需要调用虚拟机中每帧的包(package)ID和方法组件的偏移量,查找方法组件地址,发送返回地址给客户端。收到信息后,结合调试组件和调试信息,根据每帧的校验位置,解析出代码文件的中断位置,在客户端Java卡调试组件定位出所在包的位置。如此依次获得每一帧的包中方法组件的偏移量,定位出当前所在的方法即为程序触发异常的位置。当服务器端中的调试服务模块停止指令解析时,使能异常中断,在准备抛出异常的时刻,调试器开启工作模式。服务器端的Debugtool调试器发送当前执行Java卡程序的上下文信息给客户端,客户端通过查看变量和表达式的值,执行单步、下断点。同时,通过go、goto、trace into、trace over、trace out等程序控制指令启动程序,控制程序的执行。如果程序运行中发生异常,启动Break on exception按键设置异常断点功能,实现快速定位异常断点;否则禁止异常中断,调试器关闭。当然,上述实施例仅是本专利技术的优选的实施方式。本专利技术的调试方法不仅仅限于智能卡行业Java卡的基于解释型语言程序的调试,还可以广泛应用于其他领域中的解释型语言的调试场合中。最后,需要强调的是,本专利技术不限于上述实施方式,在不脱离本专利技术精神和范围的前提下,本专利技术还会有各种变化和改进,这些变化和改进都落入要求保护的本专利技术内。本专利技术要求保护范围有所附的权利要求书及其等效物界定。本文档来自技高网...
【技术保护点】
一种基于解释型语言的异常断点调试方法,其特征在于:服务器端与调试器客户端建立通信,在一操作系统平台的解释型语言调试集成模块中使能异常断点功能,程序在发生异常位置自动停止执行,实现异常的快速定位。
【技术特征摘要】
1.一种基于解释型语言的异常断点调试方法,其特征在于:服务器端与调试器客户端建立通信,在一操作系统平台的解释型语言调试集成模块中使能异常断点功能,程序在发生异常位置自动停止执行,实现异常的快速定位。2.根据权利要求1所述的异常断点调试方法,其特征在于:所述调试器使能异常中断发送上下文信息给客户端。3.根...
【专利技术属性】
技术研发人员:曹后杰,杨黄林,
申请(专利权)人:珠海保税区星汉智能卡股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。