面向VM Debugging Awareness 的应用程序界面
0赞自2006 年以来,Lauterbach 支持Java 程序的调试,适用于Java 虚拟机J2ME CLDC、J2ME CDC 和Kaffe。由于虚拟机越来越受到欢迎,因此虚拟机供应商的数目正在快速增涨。目前,并非所有虚拟机都是开源的,为了让虚拟机供应商及其用户能够根据其虚拟机特性,灵活的调整调试功能,Lauterbach 从2010 年中开始致力于开发一种新的解决方案。以Android Dalvik 虚拟机在ARM 核的实现,做为停止模式下开发虚拟机应用程序接口的范例.
两个“调试世界”
对于系统开发者,Android 是一个开源软件栈,包括以下组件(见图3):
•Linux 内核及其硬件驱动程序。
•Android Runtime 与Dalvik 虚拟机以及一系列程序库:经典Java 内核库,Android 特殊库、C/C++ 程序库。
•Java 应用程序及其支持的应用构架。
Android 软件可采用各种语言编写:
•Linux 内核、一些程序库与Dalvik 虚拟机代码可采用C、C++ 或Assembler 编写。
•虚拟机应用程序及其支持的应用构架可采用Java 语言编写。

每个代码块都在单独的“调试世界”内测试。
调试C/C++ 程序和汇编程序代码
通过使用JTAG 接口,采用C/C++ 和汇编器编写的Android 程序可以在目标硬件上以停止模式调试。在停止模式调试时,TRACE32 调试器可直接与Android 硬
件平台的处理器通讯(见图4)。停止调试模式的特点是:当处理器被停止以进行调试时,整个Android 系统亦停止运行。
停止模式调试具有以下主要优势:
•只需一个有效的JTAG 接口即可实现调试器与处理器之间的通讯。
•无需在目标上加载调试服务程序,因此非常适合于测试已发布软件。
•它允许实时测试,因此能够有效调试仅在实时情况下才出现的问题。
目前,停止模式调试暂不支持在Dalvik VM 等虚拟机上调试VM 应用程序,因此要实现所有软件层上均能够透明调试仍然需要一段时间。

劳特巴赫工程师精心为您准备在线视频讲座,欢迎观看!
http://v.youku.com/v_show/id_XMzExNzcwMTI4.html
您可以登录“劳特巴赫(Lauterbach)中国公司”官方微博http://weibo.com/lauterbach
官方博客http://blog.sina.com.cn/lauterbachchina
官方网站http://www.lauterbach.com/frames.html?country=cn%3fhome_c.html
留言与专家进行互动,为您做免费咨询解答。
