实现远程调试的方法及系统技术方案

技术编号:10124164 阅读:186 留言:0更新日期:2014-06-12 14:39
本发明专利技术公开了一种实现远程调试的方法及系统,涉及通信技术领域,能够实现跨局域网的远程调试。本发明专利技术在远程调试系统中设置了中转代理、调试方代理和被调试方代理,中转代理依据存储的映射表完成对调试方代理和被调试方代理发送过来的信息进行转发,实现了处于不同局域网内部的远程调试客户端和远程调试服务端之间的信息传输。

【技术实现步骤摘要】
实现远程调试的方法及系统
本专利技术涉及通信
,尤其涉及一种实现远程调试的方法及系统。
技术介绍
远程调试(RemoteDebugging)是指在一台计算机上使用调试工具调试另外一台计算机上的程序(program)的一种调试策略。现有远程调试技术主要包括两个组成部分:调试方(Debugger)和被调试方(Debuggee)。使用调试工具进行调试的一方称为“调试方”,例如,运行调试工具的客户端VisualStudio2010;被调试工具调试的一方称为“被调试方”,例如,运行着调试工具的服务器端MSVSMON。通过远程调试,调试方可以在自己的调试环境中第一时间进入被调试方出现问题的环境中,追踪和定位问题的根源,提高调试方发现问题和解决问题的效率,而备受软件调试人员的青睐。现有远程调试技术是通过第三方调试工具实现基于局域网(LAN,LocalAreaNetwork)内的远程调试与分析功能,目前常用的第三方调试工具包括:Windows平台下的VisualStudio、WinDbg;Linux平台下的gdb(GNUDebugger)等。其中VisualStudio和WinDbg这两个工具都来自于微软(MicrosoftCorporation),而gdb则是GNU系统的标准调试器。虽然上述的第三方工具都提供了远程调试的功能,即提供了调试工具的客户端和服务器端程序,但是在面对调试方和被调试方位于不同的局域网时,由于局域网通常有自己的网关在起作用,因此调试方与被调试方之间无法直接建立连接,也就是说,这些调试工具的远程调试功能将无法直接使用。
技术实现思路
本专利技术的实施例提供一种实现远程调试的方法及系统,能够实现跨局域网的远程调试。为达到上述目的,本专利技术的实施例采用如下技术方案:一种实现远程调试的方法,应用于远程调试系统,所述远程调试系统包括远程调试客户端、调试方代理、中转代理、被调试方代理、远程调试服务端;所述远程调试客户端与调试方代理同属于第一局域网,所述被调试方代理与远程调试服务端同属于第二局域网,所述第二局域网与所述第一局域网是不同的通信网络,所述中转代理属于第一局域网以及第二局域网以外的外部通信网络中,该方法包括:远程调试客户端向调试方代理发送调试信息;调试方代理获取与所述远程调试客户端对应的进程标识、接收端口标识以及调试方代理对应的关键字信息;将所述与所述远程调试客户端对应的进程标识、所述接收端口标识以及调试方代理对应的关键字信息以及所述调试信息封装在数据包内;将所述数据包发送至中转代理;中转代理对所述数据包进行解封装处理,得到所述与所述调试方代理对应的关键字信息;根据已存储的映射表,确定与调试方代理存在对应关系的被调试方代理;将所述数据包转发至与调试方代理存在对应关系的被调试方代理;被调试方代理对所述数据包进行解封装处理,得到调试信息、所述与所述远程调试客户端对应的进程标识以及所述接收端口标识;根据所述接收端口标识,将所述调试信息发送至与所述进程标识对应的远程调试服务端相应端口;远程调试服务端根据所述调试信息进行调试。一种实现远程调试的系统,其特征在于,所述远程调试系统包括远程调试客户端、调试方代理、中转代理、被调试方代理、远程调试服务端;所述远程调试客户端与调试方代理同属于第一局域网,所述被调试方代理与远程调试服务端同属于第二局域网,所述第二局域网与所述第一局域网是不同的通信网络,所述中转代理属于第一局域网以及第二局域网以外的外部通信网络中;其中,远程调试客户端,用于向调试方代理发送调试信息;所述调试方代理,用于获取与所述远程调试客户端对应的进程标识、接收端口标识以及调试方代理对应的关键字信息;将所述与所述远程调试客户端对应的进程标识、所述接收端口标识以及调试方代理对应的关键字信息以及所述调试信息封装在数据包内;将所述数据包发送至中转代理;所述中转代理,用于对所述数据包进行解封装处理,得到所述与所述调试方代理对应的关键字信息;根据已存储的映射表,确定与调试方代理存在对应关系的被调试方代理;将所述数据包转发至与调试方代理存在对应关系的被调试方代理;所述被调试方代理,用于对所述数据包进行解封装处理,得到调试信息、所述与所述远程调试客户端对应的进程标识以及所述接收端口标识;根据所述接收端口标识,将所述调试信息发送至与所述进程标识对应的远程调试服务端相应端口;所述远程调试服务端,用于根据所述调试信息进行调试。本专利技术实施例提供的一种实现远程调试的方法及系统,在远程调试系统中设置了中转代理、调试方代理和被调试方代理,中转代理依据存储的映射表完成对调试方代理和被调试方代理发送过来的信息进行转发,实现了处于不同局域网内部的远程调试客户端和远程调试服务端之间的信息传输。相比于现有技术中,只能在同一个局域网内才能实现远程调试,本专利技术实施例能够实现跨局域网的远程调试,提供远程调试的适用性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例1中的一种实现远程调试的方法流程图;图2为本专利技术实施例1中的一种调试方代理和被调试方代理之间的映射关系的建立方法流程图;图3为本专利技术实施例1中的一种接口状态同步方法流程图;图4为本专利技术实施例2中的一种实现远程调试的系统的组成框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。实施例1本专利技术实施例提供了一种实现远程调试的方法,可以应用于一种远程调试系统中,所述远程调试系统包括远程调试客户端、调试方代理、中转代理、被调试方代理、远程调试服务端;所述远程调试客户端与调试方代理同属于第一局域网,所述被调试方代理与远程调试服务端同属于第二局域网,所述第二局域网与所述第一局域网是不同的通信网络,所述中转代理属于第一局域网以及第二局域网以外的外部通信网络中。各个局域网之间通过网关分隔开。在上述系统中,中转代理作为核心转发模块,一般在一个远程调试系统中只设置一个,并设置于独立的服务器上,而调试方代理与被调试方代理可以分别设置一个或者多个,并且所有调试方代理与被调试方代理均与同一个中转代理取得连接。为了管理方便,通常设置为一个调试方代理负责一个局域网内的一个或多个远程调试客户端的调试信息发送和接收,而一个被调试方代理负责一个局域网内的一个或多个远程调试服务端的调试信息发送和接收。在本专利技术实施例提供的远程调试系统中,各个远程调试客户端和服务端均基于诸如Windows平台下的VisualStudio、WinDbg,Linux平台下的gdb(GNUDebugger)在内的任意一种或多种远程调试工具进行设置。调试方代理可以与一个或多个远程调试客户端集成在同一个设备中,而被调试方代理可以与一个或多个远程调试服务端集成在同一个设备中。基于上述远程调试系统,本发本文档来自技高网...
实现远程调试的方法及系统

【技术保护点】
一种实现远程调试的方法,其特征在于,应用于远程调试系统,所述远程调试系统包括远程调试客户端、调试方代理、中转代理、被调试方代理、远程调试服务端;所述远程调试客户端与调试方代理同属于第一局域网,所述被调试方代理与远程调试服务端同属于第二局域网,所述第二局域网与所述第一局域网是不同的通信网络,所述中转代理属于第一局域网以及第二局域网以外的外部通信网络中,该方法包括:远程调试客户端向调试方代理发送调试信息;调试方代理获取与所述远程调试客户端对应的进程标识、接收端口标识以及调试方代理对应的关键字信息;将所述与所述远程调试客户端对应的进程标识、所述接收端口标识以及调试方代理对应的关键字信息以及所述调试信息封装在数据包内;将所述数据包发送至中转代理;中转代理对所述数据包进行解封装处理,得到所述与所述调试方代理对应的关键字信息;根据已存储的映射表,确定与调试方代理存在对应关系的被调试方代理;将所述数据包转发至与调试方代理存在对应关系的被调试方代理;被调试方代理对所述数据包进行解封装处理,得到调试信息、所述与所述远程调试客户端对应的进程标识以及所述接收端口标识;根据所述接收端口标识,将所述调试信息发送至与所述进程标识对应的远程调试服务端相应端口;远程调试服务端根据所述调试信息进行调试。...

【技术特征摘要】
1.一种实现远程调试的方法,其特征在于,应用于远程调试系统,所述远程调试系统包括远程调试客户端、调试方代理、中转代理、被调试方代理、远程调试服务端;所述远程调试客户端与调试方代理同属于第一局域网,所述被调试方代理与远程调试服务端同属于第二局域网,所述第二局域网与所述第一局域网是不同的通信网络,所述中转代理属于第一局域网以及第二局域网以外的外部通信网络中,该方法包括:远程调试客户端向调试方代理发送调试信息;调试方代理获取与所述远程调试客户端对应的进程标识、接收端口标识以及调试方代理对应的关键字信息;将所述与所述远程调试客户端对应的进程标识、所述接收端口标识以及调试方代理对应的关键字信息以及所述调试信息封装在数据包内;将所述数据包发送至中转代理;中转代理对所述数据包进行解封装处理,得到与所述调试方代理对应的关键字信息;根据已存储的映射表,确定与调试方代理存在对应关系的被调试方代理;将所述数据包转发至与调试方代理存在对应关系的被调试方代理;被调试方代理对所述数据包进行解封装处理,得到调试信息、所述与所述远程调试客户端对应的进程标识以及所述接收端口标识;根据所述接收端口标识,将所述调试信息发送至与所述进程标识对应的远程调试服务端相应端口;远程调试服务端根据所述调试信息进行调试。2.根据权利要求1所述的方法,其特征在于,所述调试信息包括建立连接请求信息、解除连接请求信息、调试数据。3.根据权利要求2所述的方法,其特征在于,在所述远程调试客户端向调试方代理发送调试信息之前,还包括:中转代理获取所有被调试方代理的标识信息,并为每个被调试方代理分配唯一的关键字信息,并将所述被调试方代理的标识信息和关键字信息之间的对应关系存储在映射表中;调试方代理获取用户选择的关键字信息;将所述用户选择的关键字信息以及所述调试方代理的标识信息发送至中转代理;中转代理根据所述关键字信息,确定所述用户选择的关键字信息对应的被调试方代理,并建立所述用户选择的关键字信息、所述用户选择的关键字信息对应的被调试方代理的标识信息、调试方代理的标识信息三者之间的映射关系,并将所述映射关系存储在映射表中。4.根据权利要求3所述的方法,其特征在于,所述调试方代理获取用户选择的关键字信息包括:所述调试方代理接收中转代理发送的被调试方代理状态信息,所述被调试方代理状态信息包括被调试方代理的标识信息和关键字信息之间的对应关系;所述调试方代理将所述被调试方代理状态信息显示出来;所述调试方代理接收用户输入的被调试方代理的标识信息,并将所述用户输入的被调试方代理的标识信息确定为所述用户选择的关键字信息。5.根据权利要求3所述的方法,其特征在于,还包括:被调试方代理检测到远程调试服务端的至少一个端口状态发生变化时,确定所述至少一个端口对应的端口标识信息;根据所述至少一个端口的当前状态以及对应的端口标识信息以及被调试方代理的标识信息进行封装,生成端口指示信息;将所述端口指示信息发送至中转代理;中转代理对所述端口指示信息进行解封装处理,得到与所述被调试方代理对应的关键字信息;根据已存储的映射表,确定与被调试方代理存在对应关系的调试方代理;将所述端口指示信息转发至与被调试方代理存在对应关系的调试方代理;调试方代理根据所述端口指示信息,确定待调整端口,并对所述待调整端口...

【专利技术属性】
技术研发人员:李峰陈旭东
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1