本发明专利技术提供了一种程序调试方法和装置。涉及软件工程领域;解决了现有调试方法调试效率和维护便利性较低的问题。该方法包括:创建Java卡虚拟机虚拟线程;创建所述Java卡虚拟机的虚拟字符串对象;在所述Java卡虚拟机和Java集成调试环境之间进行包含所述虚拟线程和所述虚拟字符串对象的配置信息的适配应答。本发明专利技术提供的技术方案适用于Java语言和C语言的同步调试,实现了Java语言与C语言编写的虚拟机程序共同调试。
【技术实现步骤摘要】
本专利技术涉及软件工程领域,尤其涉及一种程序调试方法和装置。
技术介绍
Java语言作为一种成熟的编程语言,已经广泛应用到各种应用程序的编程中。现有的Java卡中,虚拟机本身的Java语言编写的程序以及用户Java语言编写的后下载的应用程序,它们的Java代码被编译成相应的字节码,存储在Java卡中,同时Java卡还包括由C语言编写的虚拟机程序,C语言虚拟机程序将根据字节码信息,对Java语言编译成的字节码进行解析并执行。开发人员在开发Java语言程序时,需要在Windows操作系统平台下,在Java语言集成调试环境,如eclipse等,编写Java卡本身的Java语言程序或Java语言应用程序;在C语目集成调试环境,如VC等,用C语目编写虚拟机程序。Java卡本身的Java语目编写的程序,以及用C语言编写的程序一旦出现错误,虚拟机程序会出现异常。因此,编写完毕的Java卡本身的Java语言程序以及用C语言编写的程序组成的Java卡虚拟机程序需要经过调试来发现并对错误的代码进行修改。后下载的用户编写的Java语言应用程序也要经过调试来发现并对错误代码进行修改。目前常用的调试方法有三种现有技术1:是在应用程序与虚拟机程序调试时,首先在Windows操作系统平台的Java语言调试环境与C语言调试环境中分别运行应用程序和虚拟机程序,虚拟机程序对Java语言编写的程序的字节码进行逐一解析并执行。当虚拟机执行字节码出现异常,虚拟机将显示C语言程序中出现的异常代码,开发人员需要检查出现异常的字节码。现有技术2 :将Java语言程序划分为多个主调函数模块,在C中设置一一对应的被调用函数模块,被调用函数模块用于执行对应的主调函数模块的Java代码,在二者之间建立通信关系,分别在Java语言调试集成模块和C语言调试集成模块中运行所描述的应用程序及虚拟机程序。现有技术3 :是在eclipse上提供插件,在虚拟机上实现程序调试装置与之对应,二者建立通信关系,实现Java语言集成调试环境与C语言调试环境的联合调试。现有技术I不能直接显示出现错误的Java语言程序的代码,调试方法很不直观,要么要求开发人员对字节码非常熟悉,要么需要开发人员查找字节码对应的Java代码,调试效率低,不利于对Java卡应用进行快速高效地开发。现有技术2需要将Java语言分为多个主调函数模块,在C中设置一一对应的被调用函数模块,将Java语言程序分块调试,不能描述整个Java程序运行的实时信息。且不适用于后下载的与虚拟机程序无关的用户编写的Java语言程序。现有技术3需要在eclipse上提供插件,需要大量的开发工作,存在eclipse版本升级带来的兼容维护问题。综上,现有技术的调试方法的调试效率和维护便利性都较低。
技术实现思路
本专利技术提供了一种程序调试方法和装置,解决了现有调试方法调试效率和维护便利性较低的问题。一种程序调试方法,包括创建Java卡虚拟机虚拟线程;创建所述Java卡虚拟机的虚拟字符串对象;在所述Java卡虚拟机和Java集成调试环境之间进行包含所述虚拟线程和所述虚拟字符串对象的配置信息的适配应答。优选的,所述创建Java卡虚拟机虚拟线程具体为将整个Java卡虚拟机程序作为一个虚拟线程,为所述虚拟线程分配唯一 ID、对应的虚拟线程组及以线程组ID。优选的,所述创建所述Java卡虚拟机的虚拟字符串对象包括创建虚拟字符串对象,在所述虚拟字符串对象中保存相关的字符串;为每个字符串配置唯一 ID。优选的,在所述Java卡虚拟机和Java集成调试环境之间进行包含所述虚拟线程和所述虚拟字符串对象的信息的适配应答的步骤之后,还包括解析并保存所述Java卡虚拟机上Java语言字节码的包、类、方法、域信息;在与Java集成调试环境连接时,根据Java应用接口的要求,提供所述信息,在所述Java集成调试环境和Java卡虚拟机之间建立通信关系。优选的,上述程序调试方法还包括在下载应用程序前,设置调试所述应用程序的断点,所述断点包含事件信息。优选的,上述程序调试方法还包括维护一事件信息表,所述事件信息表包括多个表项,每个表项包括引用ID、虚拟方法ID、事件的描述信息以及虚拟方法对应的行号表。优选的,在下载应用程序前,设置调试所述应用程序的断点的步骤之后包括在下载应用程序后,检查预置的断点处的设置是否与所述应用程序匹配;在不匹配时,根据所述断点的安装调试信息,查找出该断点处对应的正确的类的引用、方法和设置。优选的,在下载应用程序后,检查预置的断点处的设置是否与所述应用程序匹配的步骤之后,还包括在匹配时,将所述断点上报给Java集成调试环境。本专利技术还提供了一种程序调试装置,包括线程管理模块,用于创建Java卡虚拟机虚拟线程;字符串管理模块,用于创建所述Java卡虚拟机的虚拟字符串对象;适配模块,用于在所述Java卡虚拟机和Java集成调试环境之间进行包含所述虚拟线程和所述虚拟字符串对象的配置信息的适配应答。优选的,上述程序调试装置还包括断点设置模块,用于在下载应用程序前,设置调试所述应用程序的断点,所述断点包含事件信息。优选的,上述程序调试装置还包括断点检查模块,用于在下载应用程序后,检查预置的断点处的设置是否与所述应用程序匹配,在不匹配时根据所述断点的安装调试信息,查找出该断点处对应的正确的类的引用、方法和设置,在匹配时将所述断点上报给Java集成调试环境。本专利技术提供了一种程序调试方法和装置,创建Java卡虚拟机虚拟线程,创建所述Java卡虚拟机的虚拟字符串对象,然后在所述Java卡虚拟机和Java集成调试环境之间进行包含所述虚拟线程和所述虚拟字符串对象的配置信息的适配应答,建立了 Java集成调试环境与Java卡虚拟机之间的通信,实现了 Java语言与C语言编写的虚拟机程序共同调试,解决了现有调试方法调试效率和维护便利性较低的问题。附图说明图1是本专利技术的实施例一提供的一种程序调试装置的结构示意图;图2是本专利技术的实施例二提供的一种程序调试方法完成Java语言与C语言编写的虚拟机程序共同调试的流程图;图3是Java卡虚拟机Java语言程序与c语言程序调试结构示意图;图4是本专利技术的实施例二提供的一种程序调试方法完成下载程序调试的流程图;图5是Java卡虚拟机用户Java语言后下载应用调试结构示意图;图6是本专利技术的实施例三中的Java卡虚拟机调试流程图;图7是本专利技术的实施例三所涉及的未匹配断点事件类的结构示意图;图8是本专利技术的实施例三中用户后下载程序调试事件修改流程图。具体实施例方式现有技术I不能直接显示出现错误的Java语言程序的代码,调试方法很不直观,要么要求开发人员对字节码非常熟悉,要么需要开发人员查找字节码对应的Java代码,调试效率低,不利于对Java卡应用进行快速高效地开发。现有技术2需要将Java语言分为多个主调函数模块,在C中设置一一对应的被调用函数模块,将Java语言程序分块调试,不能描述整个Java程序运行的实时信息。且不适用于后下载的与虚拟机程序无关的用户编写的Java语言程序。现有技术3需要在eclipse上提供插件,需要大量的开发工作,存在eclipse版本升级带来的兼容维护问题。为了解决上述问题,本专利技术的实施例提供了一种程序调试本文档来自技高网...
【技术保护点】
一种程序调试方法,其特征在于,包括:创建Java卡虚拟机虚拟线程;创建所述Java卡虚拟机的虚拟字符串对象;在所述Java卡虚拟机和Java集成调试环境之间进行包含所述虚拟线程和所述虚拟字符串对象的配置信息的适配应答。
【技术特征摘要】
1.一种程序调试方法,其特征在于,包括 创建Java卡虚拟机虚拟线程; 创建所述Java卡虚拟机的虚拟字符串对象; 在所述Java卡虚拟机和Java集成调试环境之间进行包含所述虚拟线程和所述虚拟字符串对象的配置信息的适配应答。2.根据权利要求1所述的程度调试方法,其特征在于,所述创建Java卡虚拟机虚拟线程具体为 将整个Java卡虚拟机程序作为一个虚拟线程,为所述虚拟线程分配唯一 ID、对应的虚拟线程组及以线程组ID。3.根据权利要求1所述的程序调试方法,其特征在于,所述创建所述Java卡虚拟机的虚拟字符串对象包括 创建虚拟字符串对象,在所述虚拟字符串对象中保存相关的字符串; 为每个字符串配置唯一 ID。4.根据权利要求1所述的程序调试方法,其特征在于,在所述Java卡虚拟机和Java集成调试环境之间进行包含所述虚拟线程和所述虚拟字符串对象的信息的适配应答的步骤之后,还包括 解析并保存所述Java卡虚拟机上Java语言字节码的包、类、方法、域信息; 在与Java集成调试环境连接时,根据Java应用接口的要求,提供所述信息,在所述Java集成调试环境和Java卡虚拟机之间建立通信关系。5.根据权利要求1所述的程序调试方法,其特征在于,还包括 在下载应用程序前,设置调试所述应用程序的断点,所述断点包含事件信息。6.根据权利要求5所述的程序调试方法,其特征在于,该方法还包括 维护一事件信息表,所述事件信息表包括多个表...
【专利技术属性】
技术研发人员:樊兆均,翟淑琴,周兴建,王小文,刘立黎,母智弘,
申请(专利权)人:大唐微电子技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。