嵌入式软件远程调试代理jdwp端通讯连接管理器的方法

文档序号:6464924阅读:309来源:国知局
专利名称:嵌入式软件远程调试代理jdwp端通讯连接管理器的方法
技术领域
本发明涉及嵌入式移动设备相应软件开发的调试技术领域,是对KVM虚拟机 的远程调试支持方面的组件之一,特别涉及嵌入式软件远程调试代理通讯连接 管理器的方法。
背景技术
技术创新是没有尽头的,不仅各种客户产品蓬勃发展,而且各种易用的开发 工具也需要发展。随着中国日渐成为世界最大的移动通讯与应用市场,移动增 值应用服务迅速崛起,这应该就是继互联网之后最大的商机。智能手机在世界 及中国的市场份额不断快速增长,各种创新手机软件的开发和应用正是推动移 动增值服务市场不断发展前进的动力来源,手机软件开发渐入成熟。目前,手 机游戏业务,手机增值业务,移动商务应用等领域正处于迅猛发展的阶段。各 大游戏公司,大型娱乐网站,门户网站,电子商务,甚至到企业应用,报刊媒 体,电视广播等机构都大力推出自己的移动业务。而即将到来的下一代通讯技 术更是让移动软件开发成为市场上份额最大的产业之一。
J2ME是目前技术开发的主体,其他市场需要的技术还有SYMBIAN C++, 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) 是开放平台,因此任何程序设计师甚至程序编写爱好者都能到Sim网站下载 J2ME开发工具,为手机写JAVA程序。然而Sun网站上的开发工具或多或少存在 一些问题,如配置复杂,专用性不足以及平台不能得到快速更新;尤其是对一 个需要推出新的手机、新的平台的企业来说,就要开发自己版本的开发平台。
调试工具是开发平台中的不可缺少的一部分。每个开发人员都应该使用调 试器或调试工具。调试器可以让您单步调试代码、冻结输出并检查变量。调试 工具可以帮助有经验的开发人员更迅速地找到发生问题的位置。本软件集就是 基于以上背景和技术条件下开发的MIDlet调试软件。Debugger是MIDlet开发 平台中的一个必不可或缺的开发工具,因此开发这样的调试工具是必要的。本 通讯连接管理器就是基于这种背景下实现的一个功能组件,是实现嵌入式远程 调试工具的必备组件之一。

发明内容
本发明的目的在于提供一种嵌入式远程调试软件中基于调试代理(Debug Agent)的KDWP通讯连接管理器(ConnectionMgr)实现方法。 本发明解决其技术问题采用的技术方案如下-
1) 建立JDWP连接
本连接管理器依附于debug agent,最根本的功能便是建立与debugger端的 JDWP连接。和debugger建立JDWP握手后,既能接收对方(debugger)发过来 的JDWP命令数据包,等待debug agent响应后以应答数据包的方式发回对方。 同时也能向对方(debugger)发送命令数据包,要求对方作出响应的处理;
2) 连接丢失重新侦听的能力
在等待debugger端的JDWP连接之前进行侦听,如果因为一些未知的原因而 丢失连接,具有重新建立JDWP连接的能力,表现出较强的出错恢复能力,提
高系统的可靠性。 一个例子就是当debuger本身长生错误而需要重启,此时不需 要重头开始,而是可以继续前面的会话。
3) 同时支持socket通讯方式和共享内存方式
尽管socket通讯是首要的,但本JDWP端通讯连接管理器实现方法同时支持 了 windows中的简单共享内存的方式进行JDWP连接。实现socket通讯易于在 各种操作系统中移植,然而考虑的windows的广泛易用性,也实现了基于Win32 的共享内存的方式进行通讯,在windows环境下稍稍提高了效率;
4) 具有缓存和包丢失重发功能
可以实现异步通信,增加通讯效率,都是缓存机制带来的好处。另外由于通 讯上的原因,当对方(如前述,debugger或者debug代理)发生丢包,或者重复 发包的情况,能够正确处理;
5) 同时支持多种及多个标准debugger
可以连接具有相同标准的不同的调试器,也可以同时有多个调试器连接到本 连接管理器上,完成一些特殊的调试需求。
本发明与背景技术相结合,具有的有益的效果是
本发明是一种嵌入式远程调试软件中调试代理(Debug Agent)的JDWP端 通讯连接管理器(Connection manager)的实现方法,其主要功能是对debug agent提供JDWP端通讯协议的实现,是远程调试软件的组件之一,共同完成对 虚拟机软件的远程调试能力。
(1) 独立性。本方法实现了在嵌入式软件调试的debug agent端JDWP 通讯连接管理器(Connection mgr),即通讯格式标准化,与调试器只采用标准 化的JDWP通讯方式。因此具有架构清晰,各组件相对独立的优点,也是实现 远程调试的基础组件之一。因此,只要遵循JDWP协议的调试器都与本通讯连接 管理器兼容。
(2) 可靠性和高效性。Debug Agent的引入本身就是为了解决嵌入式设备 中资源受限的情景,而本连接管理器就是用来连接debug Agent与debugeer通 讯的组件,在等待debugger端的JDWP连接之前进行侦听,如果因为一些未知 的原因而丢失连接,具有重新建立JDWP连接的能力,较强的出错恢复能力,同 时也很好的解决了丢包或者来不及处理上一个包等情况下的响应问题、资源限
制瓶颈的问题,也具备了容错的能力。


图1是本发明在整个嵌入式远程调试器方面的关系图,图2是本发明实施 流程具体实施例方式
本发明是一种嵌入式远程调试软件中调试代理(Debug Agent)的JDWP端 通讯连接管理器(Connection manager)的实现方法。本连接管理器依附于debug agent,建立起与debugger端的JDWP连接。因此,来自debugger端的数据包和 发至debugger端的数据包都有它来管理。
下面结合图l、图2说明其具体实施过程。
1) 建立JDWP连接
本连接管理器依附于debug agent,最根本的功能便是建立与debugger端的 JDWP连接。和debugger建立JDWP握手后,既能接收对方(debugger)发过来 的JDWP命令数据包,等待debug agent响应后以应答数据包的方式发回对方。 同时也能向对方(debugger)发送命令数据包,要求对方作出响应的处理,详见 附图伪码说明;
2) 连接丢失重新侦听的能力
在等待debugger端的JDWP连接之前进行侦听,如果因为一些未知的原因而 丢失连接,具有重新建立JDWP连接的能力,表现出较强的出错恢复能力,提 高系统的可靠性。 一个例子就是当debugger本身产生错误而需要重启,此时不 需要重头开始,而是可以继续前面的会话。这个技术是通过一个会话一种通讯 来回的方式来实现的,也就是一个会话不与另一个会话的内容相冲突。在会话 未结束之前,会保留所有会话内容。因此也实现了错误恢复的能力。
3) 同时支持socket通讯方式和共享内存方式
尽管socket通讯是首要的,但本JDWP端通讯连接管理器实现方法同时支持 了 windows中的简单共享内存的方式进行JDWP连接。实现socket通讯易于在 各种操作系统中移植,然而考虑到windows的广泛易用性,也实现了基于Win32 的共享内存的方式进行通讯,在windows环境下稍稍提高了效率。具体实施中采用参数传递的方式确定使用何种通讯方式,在windows下默认用共享内存, 在UNIX环境下默认采用socket通讯方式。
4) 具有缓存和包丢失重发功能
可以实现异步通信,增加通讯效率,都是缓存机制带来的好处。另外由于通 讯上的原因,当对方(如前述,debugger或者debug代理)发生丢包,或者重复 发包的情况,能够正确处理;
5) 同时支持多种及多个标准debugger
可以连接具有相同标准的不同的调试器,也可以同时有多个调试器连接到本 连接管理器上,完成一些特殊的调试需求。基于JDWP的通讯标准,加上具有 通讯异步的能力和缓存的能力,因此支持多个及多个调试器便是自然而然的事。
权利要求
1、一种嵌入式软件远程调试代理JDWP端通讯连接管理器的方法,其特征在于,包括1)建立JDWP连接依附于debug agent,并建立与debugger端的JDWP连接;2)连接丢失重新侦听的能力在等待debugger端的JDWP连接之前进行侦听,如果因为一些未知的原因而丢失连接,具有重新建立JDWP连接的能力,极强的出错恢复能力;3)同时支持socket通讯方式和共享内存方式尽管socket通讯是首要的,但本JDWP端通讯连接管理器实现方法同时支持windows中的简单共享内存的方式进行JDWP连接;4)缓存和包丢失重发;5)同时支持多个调试端连接具有相同标准的不同的调试器,也同时有多个调试器连接到本连接管理器上,完成调试需求。
全文摘要
本发明涉及嵌入式移动设备相应软件开发的调试技术领域,旨在提供一种嵌入式软件远程调试代理JDWP端通讯连接管理器的方法。该方法包括建立JDWP连接、连接丢失重新侦听的能力、同时支持socket通讯方式和共享内存方式、缓存和包丢失重发、同时支持多个调试端。本发明是主要功能是对debug agent提供JDWP端通讯协议的实现,是远程调试软件的组件之一,共同完成对虚拟机软件的远程调试能力,具备独立性、可靠性和高效性。
文档编号G06F11/36GK101349990SQ20081012094
公开日2009年1月21日 申请日期2008年9月18日 优先权日2008年9月18日
发明者鑫 刘, 俊 吴, 施青松, 欧阳雷, 罡 王, 缪良华, 罗尚虎, 威 胡, 剑 陈, 陈天洲 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1