嵌入式MIDlet调试软件的断点实现方法

文档序号:6464920阅读:191来源:国知局
专利名称:嵌入式MIDlet调试软件的断点实现方法
技术领域
本发明涉及嵌入式移动设备相应软件开发的调试技术领域,特别是涉及对 KVM虚拟机的远程调试支持的,嵌入式MIDlet调试软件的断点实现方法。
背景技术
科技的发展永远都要通过技术创新来实现,而技术创新是没有尽头的。随着 中国日渐成为世界最大的移动通讯与应用市场,移动增值应用服务迅速崛起, 这应该就是继互联网之后最大的商机。智能手机在世界及中国的市场份额不断 快速增长,各种创新手机软件的开发和应用正是推动移动增值服务市场不断发 展前进的动力来源,手机软件开发渐入成熟。目前,手机游戏业务,手机增值 业务,移动商务应用等领域正处于迅猛发展的阶段。各大游戏公司,大型娱乐 网站,门户网站,电子商务,甚至到企业应用,报刊媒体,电视广播等机构都 大力推出自己的移动业务。而即将到来的下一代通讯技术更是让移动软件开发 成为市场上份额最大的产业之一。
J2ME是目前技术开发的主体,其他市场需要的技术还有SYMBIANC++, WINDOWS MOBILE/CE C++。由于J2ME的技术先进,而且又能跨平台运行, 因此受到了众多手机厂家的支持,甚至成为现在用户购买手机的一项比较重要 的技术指标。所以到目前为止,手机的游戏应用平台中,以支持J2ME的最多,
而且J2ME软件开发商也有越来越多的趋势,J2ME已成为2002年下半年之后 的行动游戏平台主流。尤其在进入04年之后,基于JSR184的Mobile 3D Graphics API for J2ME的3D游戏开始出现,像索爱S700/K700/Z500以及西门子S65等 新机都开始支持在手机上运行3D JAVA游戏。
phoneME是SUN Open Source Java中的一个重要项目,包含了 CLDC和CDC 的HotSpot实现以及多个JSR。相比起以前能下载到的RI, phoneME是一个真 正经历过众多实际产品验证的,商业级的JavaME实现。运行phoneME到当代 的手机上便是自然而然的事。同时,以J2ME平台开发的程序叫做MIDlet,可 以直接从在线下载后离线运行,或从PC通过数据线、红外或者蓝牙传输到手机 上。由于J2ME程序都很小,只有几十K,所以又被称为K-JAVA。由于K-JAVA (J2ME)是开放平台,因此任何程序设计师甚至程序编写爱好者都能到Sun网 站下载J2ME开发工具,为手机写JAVA程序。然而Sun网站上的开发工具或 多或少存在一些问题,如配置复杂,专用性不足以及平台不能得到快速更新; 尤其是对一个需要推出新的手机、新的平台的企业来说,就要开发自己版本的 开发平台。
调试工具是开发平台中的不可缺少的一部分。每个开发人员都应该使用调试 器或调试工具。调试器可以让您单步调试代码、冻结输出并检查变量。调试工 具可以帮助有经验的开发人员更迅速地找到发生问题的位置。本软件集就是基 于以上背景和技术条件下开发的MIDlet调试软件。调试器是MIDlet开发平台中 的一个必不可或缺的开发工具,因此开发这样的调试工具是必要的。本嵌入式 手机标准Java软件MIDlet调试软件的一种断点实现方法就是在这样背景下的一
个基础性功能。

发明内容
本发明的目的在于提供嵌入式手机标准Java软件MIDlet调试软件的一种断 点实现方法。
本发明解决其技术问题采用的技术方案如下-
1) 建立双向连接
嵌入式远程调试中分为三大组件,即JDWP调试器,调试代理和运行MIDlet 的虚拟机。实现调试的第一步就是这三者之间建立双向连接,即KDWP调试器和 调试代理建立JDWP连接,调试代理与虚拟机建立KDWP连接;
2) 加载类
调试器向调试代理发送加载class的命令,发来的数据包中包括要执行的 MIDlet的class名称,调试代理会为每个class名称产生一个命令消息并依次 发送给KVM, KVM开始准备加载MIDlet class;
3) 设置断点
KVM会将调试器需求的bytecode设为断点并应答调试代理一个消息,接着 KVM再次阻塞自己;
4) 断点操作
当Java解释器解释到设为断点的那条bytecode时立即停止执行,向debug agent发送断点到达信号,并阻塞自己;
5) 完成断点操作
调试代理收到KVM的断点到达消息后,在本地消息队列中查找相应的调试 代理的请求消息,形成应答送Debugger;
本发明与背景技术相结合,具有的有益的效果是
本发明是一种嵌入式手机标准Java软件MIDlet调试软件的一种断点实现方 法,其主要功能是对类似phoneME虚拟机提供MIDlet调试的一种断点实现方法, 以对虚拟机软件实现基础远程调试的功能。
(1)基础性。本方法实现了在嵌入式手机标准java软件MIDlet调试软件 的一种断点实现方法。断点是任何调试方法中的一种基础性操作,在实现了这 一操作后,基于这一操作可以方便地实现更多更高级的调试功能,展示了本发
明的基础性功能。
(2)高效性。本嵌入式手机标准Java软件MIDlet调试软件的一种断点实 现具有具有通用性强,利用调试代理充分节省了虚拟机的硬件资源,达到嵌入 式软件的简易调试能力。


图1是本发明的实施过程示意图;
具体实施例方式
本发明是一种嵌入式标准标准Java软件MIDlet调试软件的一种断点实现方 法,下面结合图1说明其具体实施过程。
1) 建立双向连接
嵌入式远程调试中分为三大组件,即JDWP调试器,调试代理和运行MIDlet 的虚拟机。实现调试的第一步就是这三者之间建立双向连接,即KDWP调试器和 调试代理建立JDWP连接,调试代理与虚拟机建立KDWP连接。
具体连接实现是有每个组件的连接管理器和连接代理完成的,建立连接后 即为无错误型连接,各种数据包的拼接,超时,重发等操作由连接代理和连接 管理器完成。
2) 加载类
调试器向调试代理发送加载class的命令,发来的数据包中包括要执行的 MIDlet的class名称,调试代理会为每个class名称产生一个命令消息并依次 发送给KVM, KVM开始准备加载MIDlet class。
在嵌入式远程调试中,每一次操作都分为一次命令操作和一次或数次应答 操作。当两端的连接建立后,调试代理进入一个socket侦听循环,等待来自调 试器(用户端)的命令,而KVM会阻塞自己,等待来自调试代理的resume命令。 接着调试器向调试代理发送加载class的命令,发来的数据包中包括要执行的 MIDlet的class名称,调试代理为每个class名称产生一个命令消息并依次发 送给KVM。 KVM接到条时代发来的resume命令后开始准备加载MIDlet class, 每次成功加载一个class后,KVM会向调试代理发送一个class加载成功的应答 消息,然后再次阻塞自己。最后调试代理会向调试器应答一个class加载成功
消息。
3) 设置断点
调试器收到调试代理的classes准备完毕的消息后,会检査该class中是 否设有断点,如果没有,KVM就以正常方式运行;如果有断点,他会向调试代理 发送一个设置断点命令以及与断点有关的信息。调试代理也发送同样的命令给 KVM,KVM会将对应的bytecode插入断点信息设为断点并应答调试代理一个消息, 接着KVM再次阻塞自己,等待下一条命令。
4) 断点操作
调试器在接收到调试代理发来的端点设置完毕信号后,发送resume信号, 虚拟机KVM接收到resume信号后开始执行当前class对应的bytecodes,当Java 解释器解释到设为断点的那条bytecode时立即停止执行,向调试代理发送断点 到达信号,再次阻塞自己等待命令。
5) 完成断点操作
调试代理收到虚拟机KVM的断点到达消息后,在本地消息池中査找相应的 调试代理的请求消息,形成应答信息送给调试器;
断点操作是任何调试方法中的一种基础性操作,在实现了这一操作后,基 于这一操作可以方便地实现更多更高级的调试功能,展示了本发明的基础性功
权利要求
1、一种嵌入式MIDlet调试软件的断点实现方法,其特征在于,包括 1)建立双向连接 嵌入式远程调试中分为三大组件,即JDWP调试器,调试代理和运行MIDlet的虚拟机;实现调试的第一步就是这三者之间建立双向连接,即KDWP调试器和调试代理建立JDWP连接,调试代理与虚拟机建立KDWP连接;2)加载类调试器向调试代理发送加载class的命令,发来的数据包中包括要执行的MIDlet的class名称,调试代理为每个class名称产生一个命令消息并依次发送给KVM,KVM开始准备加载MIDlet class;3)设置断点KVM将调试器需求的bytecode设为断点并应答调试代理一个消息,接着KVM再次阻塞自己;4)断点操作当Java解释器解释到设为断点的那条bytecode时立即停止执行,向debug agent发送断点到达信号,并阻塞自己;5)完成断点操作调试代理收到KVM的断点到达消息后,在本地消息队列中查找相应的调试代理的请求消息,形成应答送Debugger。
全文摘要
本发明涉及嵌入式移动设备相应软件开发的调试技术领域,旨在提供一种嵌入式MIDlet调试软件的断点实现方法。该方法包括建立双向连接、加载类、设置断点、断点操作、完成断点操作。本发明是一种嵌入式手机标准java软件MIDlet调试软件的一种断点实现方法,其主要功能是对类似phoneME虚拟机提供MIDlet调试的一种断点实现方法,以对虚拟机软件实现基础远程调试的功能,具有基础性和高效性的特点。
文档编号G06F11/36GK101364200SQ20081012082
公开日2009年2月11日 申请日期2008年9月18日 优先权日2008年9月18日
发明者冯德贵, 鑫 刘, 俊 吴, 施青松, 欧阳雷, 缪良华, 罗尚虎, 威 胡, 剑 陈, 陈天洲 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1