CN104461905A - 一种智能卡虚拟机、api库与上层应用同时调试的方法及系统 - Google Patents
一种智能卡虚拟机、api库与上层应用同时调试的方法及系统 Download PDFInfo
- Publication number
- CN104461905A CN104461905A CN201410839136.1A CN201410839136A CN104461905A CN 104461905 A CN104461905 A CN 104461905A CN 201410839136 A CN201410839136 A CN 201410839136A CN 104461905 A CN104461905 A CN 104461905A
- Authority
- CN
- China
- Prior art keywords
- application
- debugging message
- virtual machine
- assembly
- debugging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种智能卡虚拟机、API库与上层应用同时调试的方法,包括:对原生虚拟机代码,直接产生原生语言格式调试信息;对API库代码直接产生上层语言格式调试信息;对动态装载的所述上层应用的调试信息的产生方法包括:装载所述应用到运行环境;通过智能卡虚拟机的接口,获得该应用各组件在当前运行环境的基地址;将各组件在当前运行环境的基地址和应用的源代码一起作为输入,通过应用源代码获得偏移地址,通过基地址+偏移地址的方法,产生正确的符合运行环境实际应用调试信息;调试器分别载入虚拟机调试信息、API库调试信息和上层应用调试信息,对三者完整调试。本发明扩展了同时集成调试的范围,可实现动态应用和虚拟机与API库的同时集成调试。
Description
技术领域
本发明涉及虚拟机调试技术领域,尤其涉及一种智能卡虚拟机、API库与上层应用同时调试的方法及其调试信息产生方法及系统。
背景技术
一般的,在进行智能卡虚拟机程序调试时,可以通过虚拟机程序pc指针与原生代码源程序行号的对应关系进行虚拟机原生语言(如c语言)代码层的调试。在其上层语言(如java语言)层面,调试器通过对字节码JPC的计算,通过调试信息文件内字节码地址与源文件行号的对应关系,可以定位到上层语言源代码运行。
一般而言,上层语言层面的API库掩膜(mask)在运行环境中,调试文件产生工具可以明确定位到其在运行环境中的绝对地址。
而动态装载的应用,其指令地址是由运行环境动态决定的,多个应用装载到运行环境中的次序不同,同一个应用同样的指令码在运行环境中的实际地址是不一样的,这就为统一格式的调试信息生成造成了困难。如果不解决这个问题,则无法进行动态装载的应用与智能卡虚拟机、API库的同时调试。
发明内容
有鉴于背景技术所述,本发明的目的是提供一种智能卡虚拟机、API库与上层应用同时调试的方法及其调试信息产生方法。
本发明的目的是通过以下技术方案实现的:
一种智能卡虚拟机、API库与上层应用同时调试的调试信息的产生方法,其包括:
智能卡虚拟机的调试信息产生:对原生虚拟机代码,直接产生原生语言格式调试信息;
API库的调试信息的产生:对API库代码直接产生上层语言格式调试信息;
对动态装载的所述上层应用,其调试信息的产生方法包括以下步骤:
装载所述应用到运行环境;
通过所述智能卡虚拟机的接口,获得该应用各组件(类、方法、静态域等)在当前运行环境的基地址;
通过应用调试信息生成工具,将所述应用的源代码作为输入,获得应用各组件(类、方法、静态域等)的具体构成的偏移地址;
在所述的应用调试信息生成工具中,通过对应组件基地址+组件具体构成偏移地址的方法,计算出各组件对应具体构成的实际地址,将其记录在应用调试信息中,产生正确的符合运行环境实际应用调试信息;
一种智能卡虚拟机、API库与上层应用同时调试的方法,其包括:
智能卡虚拟机的调试信息产生:对原生虚拟机代码,直接产生原生语言格式调试信息;
API库的调试信息的产生:对API库代码直接产生上层语言格式调试信息;
对动态装载的所述上层应用,其调试信息的产生方法包括以下步骤:
装载所述应用到运行环境;
通过所述智能卡虚拟机的接口,获得该应用各组件(类、方法、静态域等)在当前运行环境的基地址;
通过应用调试信息生成工具,将所述应用的源代码作为输入,获得应用各组件(类、方法、静态域等)的具体构成的偏移地址;
在所述的应用调试信息生成工具中,通过对应组件基地址+组件具体构成偏移地址的方法,计算出各组件对应具体构成的实际地址,将其记录在应用调试信息中,产生正确的符合运行环境实际应用调试信息;
上述调试信息产生完成后,调试器分别载入所述虚拟机调试信息、API库调试信息和上层应用调试信息,实现对三者的完整的调试。
所述应用调试信息为上层语言格式。
本发明还提供一种智能卡虚拟机、API库与上层应用同时调试的系统,其包括:
智能卡虚拟机的调试信息产生模块,其用于对原生虚拟机代码,直接产生原生语言格式调试信息;
API库的调试信息产生模块,其用于对所述API库的代码直接产生上层语言格式调试信息;
上层应用调试信息产生模块,其包括:
装载单元,其用于将所述应用装载到运行环境;
基地址获取单元,其用于通过所述智能卡虚拟机的接口,获得该应用各组件(类、方法、静态域等)在当前运行环境的基地址;
调试信息产生单元,其用于将所述应用的源代码作为输入,获得应用各组件(类、方法、静态域)的具体构成的偏移地址;通过对应组件基地址+组件具体构成偏移地址的方法,计算出各组件对应具体构成的实际地址,将其记录在应用调试信息中,产生正确的符合运行环境实际应用调试信息。
所述应用调试信息为上层语言格式。
与现有技术相比,本发明具备如下优点:
扩展了同时集成调试的范围,现有技术仅可以进行虚拟机(原生语言)与API库(上层语言)的集成调试,而本发明则可以实现动态应用和虚拟机(原生语言)与API库(上层语言)的同时集成调试。
附图说明
图1 为本发明实施例二的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
本实施例提供的是一种智能卡虚拟机、API库与上层应用同时调试的调试信息的产生方法,其包括:
智能卡虚拟机的调试信息产生:对原生虚拟机代码,直接产生原生语言格式调试信息;
API库的调试信息的产生:对API库代码直接产生上层语言格式调试信息;
对动态装载的所述上层应用,如图1所示,其调试信息的产生方法包括以下步骤:
装载所述应用到运行环境;
通过所述智能卡虚拟机的接口,获得该应用各组件(类、方法、静态域等)在当前运行环境的基地址;
通过应用调试信息生成工具,将所述应用的源代码作为输入,获得应用各组件(类、方法、静态域等)的具体构成的偏移地址;
在所述的应用调试信息生成工具中,通过对应组件基地址+组件具体构成偏移地址的方法,计算出各组件对应具体构成的实际地址,将其记录在应用调试信息中,产生正确的符合运行环境实际应用调试信息,该调试信息为上层语言格式。
实施例二:
本实施例提供的是一种基于实施例一所述的基于调试信息的产生方法的智能卡虚拟机、API库与上层应用同时调试的方法,包括:
智能卡虚拟机的调试信息产生:对原生虚拟机代码,直接产生原生语言格式调试信息;
API库的调试信息的产生:对API库代码直接产生上层语言格式调试信息;
对动态装载的所述上层应用,其调试信息的产生方法包括以下步骤:
装载所述应用到运行环境;
通过所述智能卡虚拟机的接口,获得该应用各组件(类、方法、静态域等)在当前运行环境的基地址;
通过应用调试信息生成工具,将所述应用的源代码作为输入,获得应用各组件(类、方法、静态域等)的具体构成的偏移地址;
在所述的应用调试信息生成工具中,通过对应组件基地址+组件具体构成偏移地址的方法,计算出各组件对应具体构成的实际地址,将其记录在应用调试信息中,产生正确的符合运行环境实际应用调试信息;
上述调试信息产生完成后,调试器分别载入所述虚拟机调试信息、API库调试信息和上层应用调试信息,实现对三者的完整的调试展现。
实施例三:
本实施例提供一种实施例一所述的智能卡虚拟机、API库与上层应用同时调试的系统,其包括:
智能卡虚拟机的调试信息产生模块,其用于对原生虚拟机代码,直接产生原生语言格式调试信息;
API库的调试信息产生模块,其用于对所述API库的代码直接产生上层语言格式调试信息;
上层应用调试信息产生模块,其包括:
装载单元,其用于将所述应用到运行环境;
基地址获取单元,其用于通过所述智能卡虚拟机的接口,获得该应用各组件在当前运行环境的基地址;
动态应用的调试信息产生单元,其用于将所述应用的源代码作为输入,获得应用各组件(类、方法、静态域等)的具体构成的偏移地址,通过对应组件基地址+组件具体构成偏移地址的方法,计算出各组件对应具体构成的实际地址,将其记录在应用调试信息中,产生正确的符合运行环境实际应用调试信息。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种智能卡虚拟机、API库与上层应用同时调试的调试信息的产生方法,其特征在于,包括:
智能卡虚拟机的调试信息产生:对原生虚拟机代码,直接产生原生语言格式调试信息;
API库的调试信息的产生:对API库代码直接产生上层语言格式调试信息;
对动态装载的所述上层应用,其调试信息的产生方法包括以下步骤:
装载所述应用到运行环境;
通过所述智能卡虚拟机的接口,获得该应用各组件(类、方法、静态域)在当前运行环境的基地址;
通过应用调试信息生成工具,将所述应用的源代码作为输入,获得应用各组件(类、方法、静态域)的具体构成的偏移地址;
在所述的应用调试信息生成工具中,通过对应组件基地址+组件具体构成偏移地址的方法,计算出各组件对应具体构成的实际地址,将其记录在应用调试信息中,产生正确的符合运行环境实际应用调试信息。
2.根据权利要求1所述的方法,其特征在于:所述应用调试信息为上层语言格式。
3.根据权利要求1所述的方法,其特征在于:所述应用各组件包括:类、方法、静态域。
4.一种智能卡虚拟机、API库与上层应用同时调试的方法,其特征在于,包括:
智能卡虚拟机的调试信息产生:对原生虚拟机代码,直接产生原生语言格式调试信息;
API库的调试信息的产生:对API库代码直接产生上层语言格式调试信息;
对动态装载的所述上层应用,其调试信息的产生方法包括以下步骤:
装载所述应用到运行环境;
通过所述智能卡虚拟机的接口,获得该应用各组件在当前运行环境的基地址;
通过应用调试信息生成工具,将所述应用的源代码作为输入,获得应用各组件的具体构成的偏移地址;
在所述的应用调试信息生成工具中,通过对应组件基地址+组件具体构成偏移地址的方法,计算出各组件对应具体构成的实际地址,将其记录在应用调试信息中,产生正确的符合运行环境实际应用调试信息;
上述调试信息产生完成后,调试器分别载入所述虚拟机调试信息、API库调试信息和上层应用调试信息,实现对三者的完整的调试。
5.根据权利要求4所述的方法,其特征在于:所述应用各组件包括:类、方法、静态域。
6.根据权利要求4所述的方法,其特征在于:所述应用调试信息为上层语言格式。
7.一种智能卡虚拟机、API库与上层应用同时调试的系统,其特征在于:包括:
智能卡虚拟机的调试信息产生模块,其用于对原生虚拟机代码,直接产生原生语言格式调试信息;
API库的调试信息产生模块,其用于对所述API库的代码直接产生上层语言格式调试信息;
上层应用调试信息产生模块,其包括:
装载单元,其用于将所述应用到运行环境;
基地址获取单元,其用于通过所述智能卡虚拟机的接口,获得该应用各组件在当前运行环境的基地址;
调试信息产生单元,其用于将所述各组件在当前运行环境的基地址和所述应用的源代码一起作为输入,通过应用源代码获得偏移地址,通过基地址+偏移地址的方法,产生正确的符合运行环境实际应用调试信息。
8.根据权利要求7所述的系统,其特征在于:所述应用调试信息为上层语言格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410839136.1A CN104461905A (zh) | 2014-12-30 | 2014-12-30 | 一种智能卡虚拟机、api库与上层应用同时调试的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410839136.1A CN104461905A (zh) | 2014-12-30 | 2014-12-30 | 一种智能卡虚拟机、api库与上层应用同时调试的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104461905A true CN104461905A (zh) | 2015-03-25 |
Family
ID=52907994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410839136.1A Pending CN104461905A (zh) | 2014-12-30 | 2014-12-30 | 一种智能卡虚拟机、api库与上层应用同时调试的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461905A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649074A (zh) * | 2015-10-30 | 2017-05-10 | 北京数码视讯科技股份有限公司 | 一种智能卡的程序调试方法及装置 |
CN109478217A (zh) * | 2016-07-29 | 2019-03-15 | 高通股份有限公司 | 使用基于偏移的虚拟地址映射对目标应用功能的基于内核的检测 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101430662A (zh) * | 2008-12-09 | 2009-05-13 | 东信和平智能卡股份有限公司 | Java语言程序与虚拟机程序共同调试的方法 |
CN101446918A (zh) * | 2008-12-10 | 2009-06-03 | 中兴通讯股份有限公司 | 一种实现用户态调试器调试单个函数的方法及系统 |
CN101706725A (zh) * | 2009-11-20 | 2010-05-12 | 中兴通讯股份有限公司 | 一种可重定位程序的加载及调试方法及系统 |
CN102722440A (zh) * | 2012-06-07 | 2012-10-10 | 中兴通讯股份有限公司 | 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统 |
CN103218294A (zh) * | 2013-04-16 | 2013-07-24 | 华为技术有限公司 | 一种嵌入式系统的调试方法、调试转换装置和系统 |
CN103713889A (zh) * | 2012-09-29 | 2014-04-09 | 三亚中兴软件有限责任公司 | 一种应用的开发、编译和调试方法以及装置 |
US20140122939A1 (en) * | 2012-10-31 | 2014-05-01 | International Business Machines Corporation | Tracking Specific JAVA Native Interface Invocations of System and Library Calls |
-
2014
- 2014-12-30 CN CN201410839136.1A patent/CN104461905A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101430662A (zh) * | 2008-12-09 | 2009-05-13 | 东信和平智能卡股份有限公司 | Java语言程序与虚拟机程序共同调试的方法 |
CN101446918A (zh) * | 2008-12-10 | 2009-06-03 | 中兴通讯股份有限公司 | 一种实现用户态调试器调试单个函数的方法及系统 |
CN101706725A (zh) * | 2009-11-20 | 2010-05-12 | 中兴通讯股份有限公司 | 一种可重定位程序的加载及调试方法及系统 |
CN102722440A (zh) * | 2012-06-07 | 2012-10-10 | 中兴通讯股份有限公司 | 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统 |
CN103713889A (zh) * | 2012-09-29 | 2014-04-09 | 三亚中兴软件有限责任公司 | 一种应用的开发、编译和调试方法以及装置 |
US20140122939A1 (en) * | 2012-10-31 | 2014-05-01 | International Business Machines Corporation | Tracking Specific JAVA Native Interface Invocations of System and Library Calls |
CN103218294A (zh) * | 2013-04-16 | 2013-07-24 | 华为技术有限公司 | 一种嵌入式系统的调试方法、调试转换装置和系统 |
Non-Patent Citations (1)
Title |
---|
廖维川: "Windows动态链接库调试技术", 《科技广场》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649074A (zh) * | 2015-10-30 | 2017-05-10 | 北京数码视讯科技股份有限公司 | 一种智能卡的程序调试方法及装置 |
CN109478217A (zh) * | 2016-07-29 | 2019-03-15 | 高通股份有限公司 | 使用基于偏移的虚拟地址映射对目标应用功能的基于内核的检测 |
CN109478217B (zh) * | 2016-07-29 | 2021-12-28 | 高通股份有限公司 | 使用基于偏移的虚拟地址映射对目标应用功能的基于内核的检测 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103136406B (zh) | 可视化应用程序自动生成仿真用函数代码的方法 | |
CN106547681B (zh) | 数据自动加载并复用模拟服务测试的方法和装置 | |
CN104615538A (zh) | 一种基于手机界面控件元素的手机应用测试方法 | |
CN104317589A (zh) | 一种用于加载动态链接库的代码自动生成方法及装置 | |
CN103677821A (zh) | 软件开发工具代码发布的方法和装置 | |
CN106951254B (zh) | 支付系统中相似业务功能模块复用的方法及装置 | |
CN105653268A (zh) | 规则引擎调试方法及系统 | |
CN103488738A (zh) | 一种自动实现java对象及数据表sql文件的方法及系统 | |
CN105354072A (zh) | 一种基于Eclipse平台的代码生成方法 | |
CN103593199A (zh) | 数据转换的方法和系统 | |
CN110795162B (zh) | 生成容器镜像文件的方法和装置 | |
CN103838935A (zh) | 用于地铁信号系统设计的绘图系统和方法 | |
CN103051728B (zh) | 一种远程过程调用方法 | |
CN110851123A (zh) | 基于SpringMVC的WebGIS电网可视化框架的构建方法、系统及装置 | |
CN104461905A (zh) | 一种智能卡虚拟机、api库与上层应用同时调试的方法及系统 | |
CN105005497A (zh) | 一种Java卡虚拟机中本地函数的调用方法及装置 | |
CN103677790B (zh) | 软件的函数修改方法 | |
CN104503776A (zh) | 一种在APP开发平台上快速打包android应用程序的方法 | |
CN109144840A (zh) | 一种测试方法、装置及其设备 | |
CN106325851A (zh) | 一种Android应用交互式远程协作方法 | |
CN112346736B (zh) | 一种数据处理方法和系统 | |
CN105740141B (zh) | 一种自动化检测方法及其装置 | |
CN104102496A (zh) | 一种基于windows平台的银行自助系统跨浏览器插件的开发方法 | |
CN112445470B (zh) | 基于新增场景的动态规则创建方法和系统 | |
CN109656556B (zh) | 一种自适应页面的生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150325 |
|
RJ01 | Rejection of invention patent application after publication |