Java语言程序与虚拟机程序共同调试的方法技术

技术编号:2914784 阅读:298 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种Java语言程序与虚拟机程序共同调试的方法,包括在一操作系统平台的Java语言调试集成模块中编写应用程序单元,并在C语言调试集成模块中编写虚拟机单元,在应用程序单元中设置多个主调函数模块,赋予每一主调函数模块以唯一的ID号,设定主调函数模块的参数以及异常处理机制,在虚拟机单元中设置与多个主调函数模块一一对应的多个被调函数模块;在该操作系统平台上建立应用程序单元与虚拟机单元的通信关系,并运行应用程序单元及虚拟机单元;对异常处理机制发现的任一主调函数模块存在的错误代码进行修改。本发明专利技术的调试方法让开发人员直观地调试Java语言编写的应用程序单元,提高调试效率。

【技术实现步骤摘要】

本专利技术涉及一种Java语言程序的调试方法,尤其是基于Windows平台下Java语言程序与应用C语言编写的虚拟机程序共同调试的方法。
技术介绍
Java语言作为一种成熟的编程语言,已经广泛应用到各种应用程序的编程中。如现有的电信智能卡大多使用Java语言编写应用程序,并将应用程序存储在智能卡中,应用这些应用程序实现各种功能,如存储电话号码、手机上网等等。现有应用Java语言编程的电信智能卡中大多设有应用C语言或C++语言编写的虚拟机单元,用于支持并执行应用Java语言编写的应用程序单元。现有的Java语言编写的应用程序单元与应用C语言编写的虚拟机单元结构示意框图。现有的电信智能卡中,包括有应用Java语言编写应用程序单元10,其中应用程序单元10包括有多条Java代码,每一Java代码被编译成相应的字节码,存储在电信智能卡的存储器中。同时,电信智能卡还包括由C语言编写的虚拟机单元20,在虚拟机单元20中设置有虚拟PC指针,虚拟PC指针指向当前执行的字节码。电信智能卡运行应用程序单元10时,虚拟PC指针指向当前指向的字节码,并逐一解析并执行该字节码。电信智能卡的应用程序开发人在开发应用程序单元10时,需要在Windows操作系统平台下,应用Java语言调试集成模块,如eclipse等,编写Java语言的应用程序单元10,并且在C语言调试集成模块,如VC等,应用C语言或C++语言编写虚拟机单元20。由于应用Java语言编写的应用程序单元10与应用C语言编写的虚拟机单元20难免出现错误的Java代码,运行应用程序单元10及虚拟机-->单元20时会出现异常。因此,初次编写完毕的应用程序单元10与虚拟机单元20需要经过调试来发现并对错误的代码进行修改。现有的应用程序单元10与虚拟机单元20调试时,首先在Windows操作系统平台的Java语言调试集成模块与C语言调试集成模块中分别运行应用程序单元10以及虚拟机单元20,此时虚拟机单元20的虚拟PC指针指向应用程序单元10的字节码,并逐一解析并执行这些字节码。当虚拟机单元20执行字节码时出现异常,虚拟机单元20将显示C语言程序中出现异常的代码,开发人员需要通过虚拟PC指针查找出现异常的字节码,开发人员即找出出现错漏的字节码。但是,这种调试方法让调试人员查找出现异常的字节码,而并不显示出现错误的Java语言程序的代码,这要求开发人员对Java代码编译成的字节码非常熟悉,必须知道每一字节码与Java代码的对应关系。若开发人员对字节码并不十分熟悉,则上述调试方法变得很不直观,开发人员需要通过字节码查找对应的Java代码,使调试效率降低,不利于对电信智能卡进行快速高效地开发。现有的单独对Java语言程序调试方法中,大多设置异常处理机制,具体过程是:预先定义Java语言程序运行过程中可能出现的异常类型,并赋予异常ID号。Java语言程序运行过程中出现异常时,Java语言程序将异常抛出,并判断该异常属于哪一类型以及异常的ID号,Java语言程序通过异常的类型以及ID号将所抛出的异常捕获。这样,调试人员通过捕获的异常判断哪一Java代码出现异常,并对错误代码进行修改。
技术实现思路
针对上述问题,本专利技术主要目的是提供一种有效提高调试效率的Java语言程序与虚拟机程序共同调试方法;本专利技术另一目的是提供一种便于开发人员直观地调试Java语言程序的Java语言程序与虚拟机程序共同调试方法。-->为了实现上述的主要目的,本专利技术提供的Java语言程序与虚拟机程序共同调试的方法包括在一操作系统平台的Java语言调试集成模块中应用Java语言编写应用程序单元,在应用程序单元中设置多个主调函数模块,每一主调函数模块包含有多条Java代码,并赋予每一主调函数模块以唯一的ID号,设定每一主调函数模块的参数,并设定主调函数模块的异常处理机制;在该操作系统平台的C语言调试集成模块中应用C语言编写虚拟机单元,在虚拟机单元中设置与多个主调函数模块一一对应的多个被调函数模块,该被调函数模块用于执行对应的主调函数模块的Java代码;在该系统平台上建立应用程序单元与虚拟机单元的通信关系,并分别在Java语言调试集成模块与C语言调试集成模块中运行应用程序单元及虚拟机单元;对异常处理机制发现的任一主调函数模块存在的错误代码进行修改,即通过异常处理机制发现出现异常的主调函数模块,并对出现异常的主调函数模块中所存在的错误代码进行修改。由上述方案可见,虚拟机单元中设有多个用于执行应用程序单元主调函数模块的被调函数模块,应用程序单元运行时,虚拟机单元的被调函数模块逐一执行应用程序单元的主调函数模块,当被调函数模块运行出现异常时,应用程序单元可通过主调函数模块中的异常处理机制查找出现异常的主调函数模块,并在应用程序单元中对该主调函数模块中出现的错误代码进行修改。当然,部分异常是开发人员编写应用程序单元时主动设置在主调函数模块中,即出现异常的主调函数模块并不一定存在错误代码,开发人员发现出现异常的主调函模块后,判断该主调函数模块是否存在错误代码,若存在错误代码,便对错误代码进行修改。这样,由于应用程序单元并不编译成字节码执行,出现异常时开发人员无需通过字节码查找出现异常的Java代码,可直观地对主调函数模块中的Java代码进行修改,提高开发效率。-->一个优选的方案是,应用程序单元运行时,其执行主调函数模块,将该主调函数模块的ID号以及参数传送至虚拟机单元,虚拟机单元根据接收到的主调函数模块ID号查找对应的被调函数模块,并将主调函数模块的参数传送给被调函数模块;被调函数模块应用接收到的参数运行,并判断运行过程中是否出现异常,若出现异常,则将出现异常的信息传送至应用程序单元;应用程序单元接收到出现异常的信息后,查找哪一主调函数模块出现异常。由此可见,调试Java语言编写的应用程序时,虚拟机单元并不针对应用程序单元的字节码进行解析执行,而是直接应用被调函数模块执行每一主调函数模块,并在被调函数模块运行出现异常时将异常抛出,并且应用程序单元根据接收到的异常信息查找哪一主调函数模块出现异常。这样,开发人员可直观地查看哪一主调函数模块出现异常,可直接看到出现错误的Java代码或C代码,并对其进行修改,大大提高调试效率。进一步的方案是,在虚拟机单元中设置被调函数模块后,对每一被调函数模块赋予唯一的ID号,并且每一被调函数模块的ID号与每一主调函数模块的ID号一一对应。这样,应用程序单元运行时,虚拟机单元通过被调函数模块的ID号能更准确地找出与主调函数模块对应的被调函数模块,从而提高调试的可靠性。并且,设置被调函数模块的ID号也能方便开发人员对设置的被调函数模块进行管理与修改,给虚拟机单元的开发与调试带来便利。附图说明图1是现有应用程序单元与虚拟机单元的结构示意框图;图2是本专利技术实施例中应用程序单元与虚拟机单元的结构示意框图;图3是本专利技术实施例中主调函数模块与其对应的被调函数模块的部分代码图;-->图4是本专利技术实施例的流程图。以下结合附图及实施例对本专利技术作进一步说明。具体实施方式本专利技术的调试方法是在Windows操作系统平台下对应用Java语言编写的应用程序单元10与应用C语言或C++语言编写的虚拟机单元20进行调试。进行调试前本文档来自技高网
...

【技术保护点】
Java语言程序与虚拟机程序共同调试的方法,包括 在一操作系统平台的Java语言调试集成模块中应用Java语言编写应用程序单元,在应用程序单元中设置多个主调函数模块,每一主调函数模块包含有多条Java代码; 赋予每一主调函数模块以唯一的ID号,设定每一主调函数模块的参数,并设置主调函数模块的异常处理机制; 在该操作系统平台的C语言调试集成模块中应用C语言编写虚拟机单元,在虚拟机单元中设置与所述多个主调函数模块一一对应的多个被调函数模块,所述被调函数模块用于执行对应的主调函数模块的Java代码; 在所述操作系统平台上建立应用程序单元与虚拟机单元的通信关系,并分别在Java语言调试集成模块与C语言调试集成模块中运行所述应用程序单元及所述虚拟机单元; 对异常处理机制发现的任一主调函数模块存在的错误代码进行修改。

【技术特征摘要】
1、Java语言程序与虚拟机程序共同调试的方法,包括在一操作系统平台的Java语言调试集成模块中应用Java语言编写应用程序单元,在应用程序单元中设置多个主调函数模块,每一主调函数模块包含有多条Java代码;赋予每一主调函数模块以唯一的ID号,设定每一主调函数模块的参数,并设置主调函数模块的异常处理机制;在该操作系统平台的C语言调试集成模块中应用C语言编写虚拟机单元,在虚拟机单元中设置与所述多个主调函数模块一一对应的多个被调函数模块,所述被调函数模块用于执行对应的主调函数模块的Java代码;在所述操作系统平台上建立应用程序单元与虚拟机单元的通信关系,并分别在Java语言调试集成模块与C语言调试集成模块中运行所述应用程序单元及所述虚拟机单元;对异常处理机制发现的任一主调函数模块存在的错误代码进行修改。2、根据权利要求1所述共同调试的方法,其特征在于:所述运行应用程序单元及虚拟机单元包括应用程序单元执行主调函数模块,将该主调函数模块的ID号以及参数传送至虚拟机单元,虚拟机单元根据接收到的主调函数模块ID号查找对应的被调函数模块,并将主调函数模块的参数传送给被调函数模块;被调函数模块应用接收到的参数运行,并判断运行过程中是否出...

【专利技术属性】
技术研发人员:沈志成施伟周
申请(专利权)人:东信和平智能卡股份有限公司
类型:发明
国别省市:44[中国|广东]

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

1