基于Dalvik虚拟机的java指令调试设计与实现

被引量 : 10次 | 上传用户:lijx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着Google推出的Android平台在手机、平板等移动终端的推广,Dalvik虚拟机作为Android操作系统核心,其开发与研究也如日中天。但由于需求专业化,使用范围较窄,工具未开源,以及完全内部使用等因素的制约,对于开发调试包括Dalvik虚拟机在内的Java虚拟机自身的工具的发展仍然不够完善。虽然已有若干调试器能够针对Java程序进行源码级调试,但对于虚拟机开发过程中需要的Java指令级调试,目前还没有成熟的工具可以使用。为解决以上问题,本课题提出了设计并实现针对Dalvik虚拟机的Java程序的指令级调试功能,并将该调试功能集成到Eclipse调试器中。研究内容主要包括以下4个方面:首先,提出在Dalvik虚拟机上采用异步运行方式,实现指令级单步调试命令的功能,获取调试命令及调试结果。单步命令调试不同于在调试器线程自身就能完成的调试命令,需要调试器线程与用户线程配合完成。具体方法如下:收到单步命令后,调试器线程在被单步调试的线程中设置相应的单步请求标示;同时,调试器端立收到一个消息确认,而非调试结果。被调试线程在运行过程中将该请求与当前产生的各种调试事件进行对比,对比成立后向调试器线程发送单步事件。调试器线程收到单步事件后,向调试器端发送真正的单步运行结果。其次,为了让单步能够达到指令级,在Dalvik虚拟机实现的JPDA(Java平台调试架构)框架中添加与指令级单步请求相对应的指令级单步触发事件,并在用户线程的调试事件处理中加入了相应的处理模块,使得被单步的线程能够在每次校对请求与事件时正确的识别单步请求,并在正确的指令位置触发单步事件,以及在正确的位置停下来。再次,为了能够对指令单步调试的过程进行监控,我们需要在调试器端同步显示每次单步之后的相关程序数据和指令流,为此在Dalvik虚拟机端加入了两个重要功能,即对函数指令流的获取和栈寄存器值的获取两个命令的相应,使在进行单步调试的同时能够对程序的运行状态有直观的了解。最后,在Eclipse调试器端实现对Eclipse标准Java调试插件的扩展,包括调试模型、指令级单步、断点、源定位器、寄存器视图和指令流视图,并对实例程序进行运行测试。通过实验结果表明本课题工具的设计和实现是正确可行的,能够实现Dalvik虚拟机的指令集单步调试,对Java虚拟机的辅助开发有重要的意义。
其他文献
<正> 通常为防止粉料仓堵塞所采用的机械振动装置有以下缺点:耗电量大;有的振动器不但不能使粉料疏松,相反却将其捣结实;振幅大时可能破坏仓壁。 Kockum集团发明了一种频率为
石油焦粉替代重油应用于浮法玻璃熔窑,操控简单,维护方便,在保证玻璃质量的前提下,大幅度的节约了燃料成本,获得了可观的经济效益。
一、对于创业者,投资商最看重什么?首先,人格魅力创业者一定要有这个东西。我做投资的时候主要看着点,我称之为魅力。当然除了魅力还有经验、人品、团队。公司是创始人的公司,
以石油焦粉取代重油或天然气作为玻璃生产的燃料,降低成本的同时也会带来一系列问题,从而提出石油焦粉全富氧燃烧思路,取消蓄热室和小炉,并对浮法玻璃窑炉石油焦粉全富氧燃烧
混合型教学法是在互联网+时代基础上诞生,充分发挥出学生的主体地位,解决了传统英语教学的种种问题,本文分析了混合型教学法的相关理论基础,探讨混合型教学法在基础英语课程
当前,随着社会经济的发展,以及科学技术的不断进步,互联网技术在当前人们的生活和生产中获得了有效普及,并且对于人们的生活方式也产生了相应的变化,在网络建设发展当中,通信
综合性体育中心作为一个综合性的服务机构,随着服务范围不断地发展,其不仅仅要为运动员和运动队提供饮食,训练等后勤保障服务,也开始扩展对外经营,对社会大众开放。例如目前很多的
目的:心血管重构是高血压重要的靶器官损伤,是导致许多心血管疾病发病率和死亡率升高的独立风险因素,深入探讨心血管重构的发生机制、提出新的防治策略仍是国内外心血管领域的一
经济新常态下黑龙江省需建立符合地方多元主体特点的产学研合作平台,该平台由高校与科研院所子平台、企业子平台和政府子平台等多个子平台有机构成。以经济新常态下黑龙江省
供应链金融在解决中小企业融资难题、支持中小企业发展、促进产融结合方面具有重要意义和作用。信托公司作为特殊的金融机构,在供应链金融业务开展方面有其自身的特殊性。如