CN110502418B - 一种实现远程调试的方法 - Google Patents
一种实现远程调试的方法 Download PDFInfo
- Publication number
- CN110502418B CN110502418B CN201810470483.XA CN201810470483A CN110502418B CN 110502418 B CN110502418 B CN 110502418B CN 201810470483 A CN201810470483 A CN 201810470483A CN 110502418 B CN110502418 B CN 110502418B
- Authority
- CN
- China
- Prior art keywords
- interface
- debugger
- data
- party
- debuggee
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种实现远程调试的方法,涉及Windows应用开发技术领域和镜像操作方式,所述方法基于跨进程通信技术和镜像操作方式来进行的远程调试,本发明方法实现了互联网中处于不同局域网内部的远程调试客户端和远程调试服务端之间的远程信息调试和传输。
Description
技术领域
本发明涉及Windows应用开发技术领域,尤其涉及一种实现远程调试的方法。
背景技术
随着计算机网络技术的极速发展,为方便远距离计算机操作而使用远程调试(Remote Debugging)的应用越来越普遍,它是指在一台计算机上调试另外一台计算机上的程序 (program) 的一种调试策略。
现有技术中,通常采取下述方式实现远程调试:
第一,定义数据协议,在客户端发送数据请求,服务端响应请求将数据返回给客户端,再将数据镜像到客户端的界面上。
第二,用户在客户端操作镜像的图形界面,再次发送用户的操作请求到服务端,服务端响应客户端的操作。
在实现本发明的过程中,现有技术至少存在以下问题:
第一,如何对业务数据协议的数据做封包和拆包处理,随着业务的增多,不仅增加很多的数据协议,而且还增加很多的消息分支处理,客户端和服务端都需要我们去维护这样的代码,导致付出的工作量庞大。
第二,跨平台通信技术最流行的是TCP/IP通信技术,TPC/IP协议虽然灵活,但毕竟是传输层协议,远程调试起来操作繁琐,实用性窄。
本发明用于解决镜像数据的远程操作调试的过程,远程调试过程中,利用基于windows的进程间的通信方式,把被调试方程序需要调试的所有数据和函数的集合将其序列化成一个二进制数据缓冲流,通过进程间的发消息的形式,发送到调试方程序中,并将获取到的数据流反序列化成数据和函数的集合,镜像出相应的图形界面,操作者就可以根据调试方的程序调试到远程的被调试方程序中去。
发明内容
本发明的主要目的在于克服现有技术的不足,提供一种跨进程通信技术和镜像操作方式来进行远程调试的方法。
为达到上述目的,本发明的实施例采用如下技术方案:
一种实现远程调试的方法,应用于远程调试***,所述调试***包括采用Windows底层跨进程通信技术获取被调试方的进程数据和接口的列集;并利用Windows底层跨进程通信技术获取的数据包将被调试方的进程数据和接口散集;最后依据接口的逻辑将数据镜像到调试方;进而通过调试方的接口进行远程调试:
S1、被调试方提供需要调试的函数和数据,并通过API应用程序接口面向对象的方式封装,最后打包成数据流发送至被调试方;
S2、调试方采用Windows底层跨进程通信技术获取被调试方的数据和接口的列集;
S3、基于Windows底层跨进程通信技术获取的数据包将被调试方的数据和接口的列集流散集成相应的接口和数据,并把回调接口注册到被调试方;
S4、调试方将获取到的数据流反序列化成数据和函数的集合,并按照接口的逻辑将数据镜像到调试方,进而通过调试方的接口进行远程调试。
与现有技术相比,本发明的有益效果主要在于:本发明采用跨进程通信技术和镜像操作方式来进行远程调试的方法,可方便快捷地进行远程调试操作。
附图说明
构成本发明专利的一部分的附图用来提供对本发明专利的进一步理解,本发明专利的示意性实施例及其说明用于解释本发明专利,并不构成对本发明专利的不当限定。
图1为本发明实施例方法的示意流程图。
具体实施方式
下面结合附图对本发明专利进行详细描述,本部分的描述仅是示范性和解释性,不应对本发明专利的保护范围有任何的限制作用。此外,本领域技术人员根据本文件的描述,可以对本文件中实施例以及不同实施例中的特征进行相应组合。
本发明实施例提供了一种实现远程调试的方法,其所述数据和接口获取:被调试方将接口或者函数包装成Dispatch接口,然后将包装的Dispatch接口序列化成流,通过Windows底层跨进程通信技术将打包的数据流发送至调试方,调试方根据被调试方提供的接口或者函数,将通过Windows底层跨进程通信技术接收的数据流反序列化成Dispatch接口,将接口反射成相应被调试方提供的接口或者函数,基于上述远程调试方式,本发明实施例提供的一种实现远程调试的方法,如图1所示,实现过程包括:
(1)被调试方按照定义好数据的根接口,根据需求组合更多的子接口,也可以通过子接口对相关需求进行分类包装,使相关需求逻辑更加清晰、更加容易扩展。并通过API应用程序接口面向对象的方式封装,用克隆拷贝的方式准备好被调试方需要的数据。
(2)被调试方把封装好的接口跟子接口和里面的数据打包成数据流,通过Windows底层跨进程通信技术发送至调试方,其中同一厂家生产的相同型号机器可通过COPY的方式发送至另一用户,而不同型号的机器可以结合网络通信发送至一个用户。
(3)调试方将接受到的数据流通过相应的方式反序列化成相应代理的存根接口,其中接口的组合方式,与被调试方的进程一致,调试方获得上述反序列化的接口,根据被调试方需求获取Copy数据,并把数据通过相同的组件或者控件显示出来,同时为了与被调试方做同步调试操作,调试方设定与被调试方相对应的回调接口,并把调试方的回调接口注册到被调试方,以此作为被调试方的代理存根接口。
(4)调试方通过模糊匹配获取到被调试方控件模式,从而获取被调试方数据的根接口以、打包好的子接口和数据的业务逻辑,采用循环遍历方式将数据显示到调试方的镜像的相同界面上。调试方根据获得的代理存根接口可随时进行远程同步操作。
(5)操作调试方界面时,通过调用代理存根接口将显示出的界面状态传送至被调试方的真实的业务逻辑接口,并在被调试方显示同样的界面状态。
(6)操作被调试方界面时,通过调用代理存根接口将显示出的界面状态传送至调试方的真实回调接口,并在调试方显示同样的界面状态。
Claims (6)
1.一种实现远程调试的方法,基于跨进程通信技术和镜像操作方式来进行的远程调试,其特征在于,调试方向被调试方发送调试信息,所述方法包括以下步骤:
S1、被调试方提供需要调试的函数和数据,并通过 API 应用程序接口面向对象的方式封装,最后打包成数据流发送至调试方;
S2、调试方定义回调接口,并采用 Windows 底层跨进程通信技术获取被调试方的数据和序列化接口的列集;
S3、基于 Window 底层跨进程通信技术获取的数据包将被调试方的数据和接口的列集流散集成相应的接口和数据,并把回调接口注册到被调试方;
S4、采用跨进程的循环遍历方式将数据显示到调试方的镜像的相同界面上,从而获取被调试方数据的根接口、打包好的子接口和数据的业务逻辑,调试方根据获得的代理存根接口可随时进行远程同步操作,操作调试方界面时,通过调用代理存根接口将显示出的界面状态传送至被调试方的真实的业务逻辑接口,并在被调试方显示同样的界面状态,操作被调试方界面时,通过调用代理存根接口将显示出的界面状态传送至调试方的真实回调接口,并在调试方显示同样的界面状态。
2. 如权利要求 1 所述一种实现远程调试的方法,其特征在于,所述步骤 S1 中,被调试方提供需要调试的函数和数据,并通过 API 应用程序接口面向对象的方式封装,用克隆拷贝的方式准备好调试方需要的数据。
3. 如权利要求 1 所述一种实现远程调试的方法,其特征在于,所述步骤 S2 和步骤S3 中,跨进程是基于 Windows 底层的通信技术来进行数据交换。
4. 如权利要求 1 所述一种实现远程调试的方法,其特征在于,所述步骤 S2 中,调试方接受到的数据流通过相应的方式反序列化成相应代理的存根接口,其中接口的组合方式,与被调试方的进程一致,调试方获得上述反序列化的接口,采用 Windows 底层跨进程通信技术获取被调试方的数据和序列化接口流。
5. 如权利要求 1 所述一种实现远程调试的方法,其特征在于,所述步骤 S3 中,采用循环遍历方式将数据显示到调试方的镜像的相同界面上,调试方根据获得的代理存根接口可随时进行远程同步操作。
6. 如权利要求 5 所述一种实现远程调试的方法,其特征在于,将被调试方的数据和接口的列集流散集成相应的接口和数据后,把回调接口注册到被调试方。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810470483.XA CN110502418B (zh) | 2018-05-17 | 2018-05-17 | 一种实现远程调试的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810470483.XA CN110502418B (zh) | 2018-05-17 | 2018-05-17 | 一种实现远程调试的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110502418A CN110502418A (zh) | 2019-11-26 |
CN110502418B true CN110502418B (zh) | 2023-05-23 |
Family
ID=68585042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810470483.XA Active CN110502418B (zh) | 2018-05-17 | 2018-05-17 | 一种实现远程调试的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502418B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112882950B (zh) * | 2021-03-18 | 2023-07-25 | 抖音视界有限公司 | 应用调试方法及装置、电子设备和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101401333A (zh) * | 2006-04-24 | 2009-04-01 | 华为技术有限公司 | 一种基于模型驱动进行电信级业务开发的调试方法及装置 |
CN101630272A (zh) * | 2009-08-19 | 2010-01-20 | 用友软件股份有限公司 | 进程调度方法和*** |
CN102289403A (zh) * | 2010-06-15 | 2011-12-21 | 微软公司 | 脚本调试 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100338628B1 (ko) * | 1999-09-01 | 2002-05-30 | 윤종용 | 교환기 시스템의 리모트 프로세서 디버거 |
CN100392599C (zh) * | 2006-01-10 | 2008-06-04 | 杭州东信灵通电子实业公司 | 通用进程间通信实现方法 |
CN1901569B (zh) * | 2006-07-05 | 2010-08-04 | 华为技术有限公司 | 远程调试方法及*** |
CN102411535B (zh) * | 2011-08-02 | 2014-04-16 | 上海交通大学 | 导航SoC芯片仿真、验证和调试平台 |
CN103856361B (zh) * | 2012-11-29 | 2017-10-10 | 腾讯科技(深圳)有限公司 | 实现远程调试的方法及*** |
JP5943861B2 (ja) * | 2013-02-28 | 2016-07-05 | 京セラドキュメントソリューションズ株式会社 | リモートデバッグシステム |
CN103678135A (zh) * | 2013-12-25 | 2014-03-26 | 普元信息技术股份有限公司 | 大数据环境下实现跨进程与跨线程调试的***与方法 |
CN104750603B (zh) * | 2013-12-30 | 2018-12-11 | 辰芯科技有限公司 | 一种多核dsp软件仿真器及其物理层软件测试方法 |
CN104298602A (zh) * | 2014-10-27 | 2015-01-21 | 北京神州绿盟信息安全科技股份有限公司 | 一种调试应用程序的方法及装置 |
CN107040777A (zh) * | 2017-06-08 | 2017-08-11 | 深圳市创维软件有限公司 | 一种远程调试方法、机顶盒和服务器 |
-
2018
- 2018-05-17 CN CN201810470483.XA patent/CN110502418B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101401333A (zh) * | 2006-04-24 | 2009-04-01 | 华为技术有限公司 | 一种基于模型驱动进行电信级业务开发的调试方法及装置 |
CN101630272A (zh) * | 2009-08-19 | 2010-01-20 | 用友软件股份有限公司 | 进程调度方法和*** |
CN102289403A (zh) * | 2010-06-15 | 2011-12-21 | 微软公司 | 脚本调试 |
Non-Patent Citations (1)
Title |
---|
基于网络的虚拟调试环境的研究;王位杰;王铮;;计算机技术与发展(第07期);第46-49页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110502418A (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11340859B2 (en) | Synchronous display method, storage medium and electronic device | |
WO2019085079A1 (zh) | 接口测试方法、装置、计算机设备和存储介质 | |
US10635436B2 (en) | Compatibility method based on hybrid, adapter, operation device, system and computer-readable storage medium | |
CN107092489B (zh) | 基于应用版本发布的处理方法和*** | |
CN104253842B (zh) | 同步终端镜像的方法、装置、终端及服务器 | |
CN109634751B (zh) | 一种利用electron框架实现应用层和底层通信的方法 | |
US11709722B2 (en) | Extensible communication framework and communication method supporting multiple communication protocols | |
CN113032080A (zh) | 页面实现方法、应用程序、电子设备及存储介质 | |
CN115794313B (zh) | 一种虚拟机调试方法、***、电子设备及存储介质 | |
CN103164207A (zh) | 基于安卓***的跨硬件平台的应用程序开发方法和*** | |
CN111444095A (zh) | 移动设备的测试平台***和测试方法 | |
CN108038241A (zh) | 集成web可视化工作流方法、装置、可读存储介质及*** | |
CN115170711A (zh) | 一种基于云渲染的高仿真数字工厂展示方法 | |
CN110502418B (zh) | 一种实现远程调试的方法 | |
WO2022156316A1 (zh) | 支持异构环境的组态方法及*** | |
CN105141484A (zh) | 基于云服务器的安卓设备远程调试方法 | |
CN104836831B (zh) | 一种用于物联网的物体服务方法 | |
CN109634856B (zh) | 基于云服务的iOS智能终端远程真机调试***及方法 | |
CN112214392B (zh) | Js代码调试方法、装置、终端及存储介质 | |
CN112671814B (zh) | 一种跨平台的设备开发方法、装置及*** | |
Chouiten et al. | Distributed Augmented Reality systems: how much performance is enough? | |
CN111240773A (zh) | 一种软件前端与后端连接方法 | |
CN116954809B (zh) | 基于安卓设备的远程控制方法、装置、***及电子设备 | |
CN111818085B (zh) | 以太网的图形显示***、处理显示方法、服务端及客户端 | |
WO2017197829A1 (zh) | 测试信息管理方法、装置、测试用例执行***及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |