本技术涉及软件调试,例如涉及一种用于智能卡的软件调试方法及装置、系统。
背景技术:
1、目前,智能卡行业的发展,智能卡配置的java操作系统越来越复杂。为解决java操作系统可能存在的问题,通常选用调试仿真的方式进行代码调试。通过jlink(jlinksimulator)调试器进行仿真调试,虽然能够与实际读卡器建立连接,但是,无法对智能卡中配置的java代码进行调试。因此,如何对智能卡中的java代码进行调试,成为当前亟需解决的技术难题。
2、为了解决智能卡的java代码的调试问题,相关技术公开了一种智能卡的java代码调试方法,包括:在计算机上搭建java调试环境;提取运行于智能卡上的java操作系统,将提取的java操作系统在计算机上运行。
3、在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
4、相关技术虽然实现了java代码的调试功能,但是,在java调试需求产生于客户的开发生产环境中且客户无法将调试环境的相关问题反馈至智能卡的开发者的情况下,由于兼顾安全要求和调试需求,java操作系统的java源代码不能离开开发生产环境,所以,java调试环境也就无法带入客户现场。即便将java调试环境带入客户现场,需要将客户的测试环境整合至java调试环境中,会消耗大量的时间。如此,在java操作系统和测试环境、java调试环境分离的情况下,如何对智能卡的java操作系统进行调试,成为当前亟需的技术问题。
5、需要说明的是,在上述背景技术部分公开的信息仅用于加强对本技术的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
技术实现思路
1、为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
2、本公开实施例提供了一种用于智能卡的软件调试方法及装置、系统,以解决…技术问题。
3、在一些实施例中,所述方法包括:控制测试设备启动测试应用程序运行并生成待测试数据,以基于待测试数据生成标准测试指令;控制软件模拟设备将标准测试指拆包生成测试请求指令;控制软件模拟设备利用软件模拟环境执行测试请求指令并构建请求数据,并通过程序调试服务封装请求数据以生成请求数据封包;控制软件调试设备获得并解析请求数据封包以获得调试请求数据,并利用程序调试环境,根据调试请求数据进行程序调试。
4、在一些实施例中,控制软件模拟设备利用软件模拟环境执行测试请求指令并构建请求数据,并通过程序调试服务封装请求数据以生成请求数据封包,包括:控制软件模拟设备利用软件模拟环境执行测试请求指令,并构建java请求数据后发送至java平台调试架构;控制java平台调试架构封装java请求数据生成java请求数据封包;根据java请求数据封包生成请求数据封包;或者,控制软件模拟设备利用软件模拟环境执行测试请求指令,并构建c语言请求数据后发送至c语言调试器;控制c语言调试器封装c语言请求数据生成c语言请求数据封包;根据c语言请求数据封包生成请求数据封包;或者,控制软件模拟设备利用软件模拟环境执行测试请求指令,并构建java请求数据后发送至java平台调试架构,构建c语言请求数据后发送至c语言调试器;控制java平台调试架构封装java请求数据生成java请求数据封包,控制c语言调试器封装c语言请求数据生成c语言请求数据封包;根据java请求数据封包和c语言请求数据封包,生成请求数据封包。
5、在一些实施例中,控制软件调试设备获得并解析请求数据封包以获得调试请求数据,并利用程序调试环境,根据调试请求数据进行程序调试,包括:控制软件调试设备解析请求数据封包,获得c语言请求数据封包和java请求数据封包;控制软件调试设备解析c语言请求数据封包以获得c语言调试请求数据,并解析java请求封包以获得java调试请求数据;控制程序调试环境分别基于c语言调试请求数据获知c语言程序运行数据状态,基于java调试请求数据获知java程序运行状态后,根据c语言程序运行数据状态和java程序运行状态进行程序调试。
6、在一些实施例中,还包括:程序调试后,控制程序调试环境根据调试请求数据确定指示程序的目标运行状态的目标调试数据;控制软件调试设备封包目标调试数据以生成响应数据封包,并向软件模拟环境发送响应数据封包;控制软件模拟环境根据响应数据封包,确定程序调试服务关联的目标控制指令;控制程序调试服务基于目标控制指令控制代码运行。
7、在一些实施例中,按照如下方式配置测试设备:在测试设备配置测试应用程序并生成待测试数据,以使读卡器基于待测试数据生成标准测试指令;其中,测试设备与读卡器通信连接。
8、在一些实施例中,按照如下方式配置软件模拟设备:在软件模拟设备配置软件模拟服务和程序调试服务;软件模拟服务用以搭建软件模拟环境,以通过软件模拟环境执行测试应用程序关联的标准测试指令,并构建软件运行数据至程序调试服务;程序调试服务支持传输控制协议/网际协议以与软件调试设备传输调试交互数据;软件模拟设备与读卡器通信连接;调试交互数据包括请求数据封包和响应数据封包。
9、在一些实施例中,程序调试服务包括c语言调试器服务和/或java平台调试架构;在软件模拟设备配置程序调试服务,包括:搭建c语言调试器服务,以对c语言交互数据进行封装处理生成c语言交互封包;其中,c语言交互数据包括c语言请求数据或者c语言响应数据;搭建java平台调试架构,以对java交互数据进行封装处理生成java交互封包;其中,java交互数据包括java请求数据或者java响应数据。
10、在一些实施例中,程序调试环境配置有c语言解析器和/或java解析器;按照如下方式配置软件调试设备的程序调试环境:在软件调试设备上配置c语言解析器,以通过c语言解析器解析c语言交互封包生成c语言调试交互数据;在软件调试设备上配置java解析器,以通过java解析器解析java交互封包生成java调试交互数据。
11、在一些实施例中,所述装置,包括处理器和存储有程序指令的存储器,所述处理器被配置为在执行所述程序指令时,执行如上述的用于智能卡的软件调试方法。
12、在一些实施例中,所述系统,包括:测试设备,与读卡器通信连接;软件模拟设备,与读卡器通信连接;软件调试设备;和,如上述的用于智能卡的软件调试装置。
13、本公开实施例提供的用于智能卡的软件调试方法及装置、系统,可以实现以下技术效果:
14、本公开实施例在测试设备与程序调试环境地理位置分离的情况下,维修人员可以通过软件模拟设备基于标准测试指令构建请求数据,通过程序调试服务生成请求数据封包,再控制软件调试设备解析请求数据封包获得调试请求数据,最终基于调试请求数据实现程序调试。通过将软件模拟设备与软件调试设备在物理上独立设置,且分别执行请求数据封包构建和基于请求数据封包生成调试请求数据并进行程序调试的操作。如此,成功克服测试环境、调试设备和java操作系统地理位置分离对java操作系统调试的限制,实现java操作系统的软件调试。
15、以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本技术。