CN101364200B - 嵌入式MIDlet调试软件的断点实现方法 - Google Patents
嵌入式MIDlet调试软件的断点实现方法 Download PDFInfo
- Publication number
- CN101364200B CN101364200B CN2008101208251A CN200810120825A CN101364200B CN 101364200 B CN101364200 B CN 101364200B CN 2008101208251 A CN2008101208251 A CN 2008101208251A CN 200810120825 A CN200810120825 A CN 200810120825A CN 101364200 B CN101364200 B CN 101364200B
- Authority
- CN
- China
- Prior art keywords
- debugging
- breakpoint
- midlet
- kvm
- proxy
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 208000031481 Pathologic Constriction Diseases 0.000 claims description 4
- 230000000712 assembly Effects 0.000 claims description 3
- 238000000429 assembly Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 5
- 239000002253 acid Substances 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- NGGRGTWYSXYVDK-RRKCRQDMSA-N 4-amino-5-chloro-1-[(2r,4s,5r)-4-hydroxy-5-(hydroxymethyl)oxolan-2-yl]pyrimidin-2-one Chemical compound C1=C(Cl)C(N)=NC(=O)N1[C@@H]1O[C@H](CO)[C@@H](O)C1 NGGRGTWYSXYVDK-RRKCRQDMSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及嵌入式移动设备相应软件开发的调试技术领域,旨在提供一种嵌入式MIDlet调试软件的断点实现方法。该方法包括:建立双向连接、加载类、设置断点、断点操作、完成断点操作。本发明是一种嵌入式手机标准java软件MIDlet调试软件的一种断点实现方法,其主要功能是对类似phoneME虚拟机提供MIDlet调试的一种断点实现方法,以对虚拟机软件实现基础远程调试的功能,具有基础性和高效性的特点。
Description
技术领域
本发明涉及嵌入式移动设备相应软件开发的调试技术领域,特别是涉及对KVM虚拟机的远程调试支持的,嵌入式MIDlet调试软件的断点实现方法。
背景技术
科技的发展永远都要通过技术创新来实现,而技术创新是没有尽头的。随着中国日渐成为世界最大的移动通讯与应用市场,移动增值应用服务迅速崛起,这应该就是继互联网之后最大的商机。智能手机在世界及中国的市场份额不断快速增长,各种创新手机软件的开发和应用正是推动移动增值服务市场不断发展前进的动力来源,手机软件开发渐入成熟。目前,手机游戏业务,手机增值业务,移动商务应用等领域正处于迅猛发展的阶段。各大游戏公司,大型娱乐网站,门户网站,电子商务,甚至到企业应用,报刊媒体,电视广播等机构都大力推出自己的移动业务。而即将到来的下一代通讯技术更是让移动软件开发成为市场上份额最大的产业之一。
J2ME是目前技术开发的主体,其他市场需要的技术还有SYMBIAN C++,WINDOWS MOBILE/CE C++。由于J2ME的技术先进,而且又能跨平台运行,因此受到了众多手机厂家的支持,甚至成为现在用户购买手机的一项比较重要的技术指标。所以到目前为止,手机的游戏应用平台中,以支持J2ME的最多,而且J2ME软件开发商也有越来越多的趋势,J2ME已成为2002年下半年之后的行动游戏平台主流。尤其在进入04年之后,基于JSR184的Mobile 3D GraphicsAPI 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调试软件的断点实现方法。
本发明解决其技术问题采用的技术方案如下:嵌入式MIDlet调试软件的断点实现方法包括下述步骤:
1)建立双向连接
嵌入式远程调试中分为三大组件,即JDWP调试器,调试代理和运行MIDlet的虚拟机;实现调试的第一步就是这三者之间建立双向连接,即JDWP调试器和调试代理建立JDWP连接,调试代理与虚拟机建立KDWP连接;
2)加载类
调试器向调试代理发送加载类(class)的命令,发来的数据包中包括要执行的MIDlet的类名称,调试代理为每个类名称产生一个命令消息并依次发送给KVM,KVM开始准备加载MIDlet类;
3)设置断点
KVM将调试器需求的字节码(bytecode)设为断点并应答调试代理一个消息,接着KVM再次阻塞自己;
4)断点操作
当Java解释器解释到设为断点的那条字节码时立即停止执行,向调试代理(debug agent)发送断点到达信号,并阻塞自己;
5)完成断点操作
调试代理收到KVM的断点到达消息后,在本地消息队列中查找相应的调试代理的请求消息,形成应答送调试端(Debugger)。
本发明与背景技术相结合,具有的有益的效果是:
本发明是一种嵌入式手机标准java软件MIDlet调试软件的一种断点实现方法,其主要功能是对类似phoneME虚拟机提供MIDlet调试的一种断点实现方法,以对虚拟机软件实现基础远程调试的功能。
(1)基础性。本方法实现了在嵌入式手机标准java软件MIDlet调试软件的一种断点实现方法。断点是任何调试方法中的一种基础性操作,在实现了这一操作后,基于这一操作可以方便地实现更多更高级的调试功能,展示了本发明的基础性功能。
(2)高效性。本嵌入式手机标准java软件MIDlet调试软件的一种断点实现具有通用性强,利用调试代理充分节省了虚拟机的硬件资源,达到嵌入式软件的简易调试能力。
附图说明
图1是本发明的实施过程示意图;
具体实施方式
本发明是一种嵌入式标准标准java软件MIDlet调试软件的一种断点实现方法,下面结合图1说明其具体实施过程。
1)建立双向连接
嵌入式远程调试中分为三大组件,即JDWP调试器,调试代理和运行MIDlet的虚拟机。实现调试的第一步就是这三者之间建立双向连接,即JDWP调试器和调试代理建立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)设置断点
调试器收到调试代理的类准备完毕的消息后,会检查该class中是否设有断点,如果没有,KVM就以正常方式运行;如果有断点,他会向调试代理发送一个设置断点命令以及与断点有关的信息。调试代理也发送同样的命令给KVM,KVM会将对应的bytecode插入断点信息设为断点并应答调试代理一个消息,接着KVM再次阻塞自己,等待下一条命令。
4)断点操作
调试器在接收到调试代理发来的端点设置完毕信号后,发送resume信号,虚拟机KVM接收到resume信号后开始执行当前class对应的bytecodes,当Java解释器解释到设为断点的那条bytecode时立即停止执行,向调试代理发送断点到达信号,再次阻塞自己等待命令。
5)完成断点操作
调试代理收到虚拟机KVM的断点到达消息后,在本地消息池中查找相应的调试代理的请求消息,形成应答信息送给调试器;
断点操作是任何调试方法中的一种基础性操作,在实现了这一操作后,基于这一操作可以方便地实现更多更高级的调试功能,展示了本发明的基础性功能。
Claims (1)
1.一种嵌入式MIDlet调试软件的断点实现方法,其特征在于,包括:
1)建立双向连接
嵌入式远程调试中分为三大组件,即JDWP调试器,调试代理和运行MIDlet的虚拟机;实现调试的第一步就是这三者之间建立双向连接,即JDWP调试器和调试代理建立JDWP连接,调试代理与虚拟机建立KDWP连接;
2)加载类
调试器向调试代理发送加载类的命令,发来的数据包中包括要执行的MIDlet的类名称,调试代理为每个类名称产生一个命令消息并依次发送给KVM,KVM开始准备加载MIDlet类;
3)设置断点
KVM将调试器需求的字节码设为断点并应答调试代理一个消息,接着KVM再次阻塞自己;
4)断点操作
当Java解释器解释到设为断点的那条字节码时立即停止执行,向调试代理发送断点到达信号,并阻塞自己;
5)完成断点操作
调试代理收到KVM的断点到达消息后,在本地消息队列中查找相应的调试代理的请求消息,形成应答送调试端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101208251A CN101364200B (zh) | 2008-09-18 | 2008-09-18 | 嵌入式MIDlet调试软件的断点实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101208251A CN101364200B (zh) | 2008-09-18 | 2008-09-18 | 嵌入式MIDlet调试软件的断点实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101364200A CN101364200A (zh) | 2009-02-11 |
CN101364200B true CN101364200B (zh) | 2010-07-14 |
Family
ID=40390575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101208251A Expired - Fee Related CN101364200B (zh) | 2008-09-18 | 2008-09-18 | 嵌入式MIDlet调试软件的断点实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101364200B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902618B (zh) * | 2011-07-28 | 2016-03-02 | 华为技术有限公司 | 移动设备应用程序开发调试的方法及装置 |
CN102594914B (zh) * | 2012-03-15 | 2014-09-17 | 广州亦云信息技术有限公司 | 一种基于云平台的远程调试方法 |
CN102681880B (zh) * | 2012-05-23 | 2015-05-13 | 成都三零凯天通信实业有限公司 | 嵌入式千字节Java虚拟机KVM虚拟机平台 |
US9823995B2 (en) * | 2014-08-28 | 2017-11-21 | Sap Se | Structured query language debugger |
CN113836046B (zh) * | 2021-11-29 | 2022-02-15 | 武汉天喻信息产业股份有限公司 | Mcu上虚拟机应用程序调试方法及系统 |
-
2008
- 2008-09-18 CN CN2008101208251A patent/CN101364200B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101364200A (zh) | 2009-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106970790B (zh) | 一种应用程序创建的方法、相关设备及系统 | |
US8583761B2 (en) | System and method for production of multiuser network game | |
EP2737402B1 (en) | Web application architecture | |
CN101364200B (zh) | 嵌入式MIDlet调试软件的断点实现方法 | |
US20150227449A1 (en) | Method and device for developing, compiling and debugging | |
CN102053911A (zh) | 基于Android的自动化测试方法、系统及移动终端 | |
CN103345406A (zh) | 一种实现智能移动终端的云端虚拟移动终端的系统和方法 | |
CN104616138A (zh) | 资源转移方法、系统及装置 | |
CN102902618A (zh) | 移动设备应用程序开发调试的方法及装置 | |
CN101137170A (zh) | 一种嵌入设备的软件自动测试工具及方法 | |
CN103544100A (zh) | 便携数据处理设备应用程序的测试方法、系统和客户端 | |
CN102436416A (zh) | 移动设备测试系统和方法 | |
CN102419729A (zh) | 并行测试执行 | |
CN101706725A (zh) | 一种可重定位程序的加载及调试方法及系统 | |
CN101951529A (zh) | 一种机顶盒功能测试方法及系统 | |
CN103443763A (zh) | 包含对重写虚拟函数的调用的支持的isa桥接 | |
CN101349989A (zh) | 嵌入式MIDlet远程调试软件的步进实现方法 | |
CN111104281B (zh) | 一种游戏性能监控方法、装置、系统及存储介质 | |
CN1320842C (zh) | 用户识别模块工具套件的实时模拟开发方法及系统 | |
CN102339222A (zh) | 在oms手机上启动应用程序的方法 | |
CN107463524A (zh) | 一种访问数据的方法及相关设备 | |
CN101349991A (zh) | 嵌入式调试代理与连接管理器的协同设计实现方法 | |
CN101349988A (zh) | 基于虚拟机kvm的kdwp通讯连接代理实现方法 | |
CN101387982A (zh) | 嵌入式远程调试代理的kdwp端通讯连接管理器的方法 | |
CN102567070A (zh) | 手机软件调试方法及其模拟器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100714 Termination date: 20120918 |