对程序调试进行管理的方法、装置及系统的制作方法

文档序号:6363430阅读:162来源:国知局
专利名称:对程序调试进行管理的方法、装置及系统的制作方法
技术领域
本发明涉及计算机应用领域,尤其涉及一种发送、对程序调试进行管理的方法、装置及系统。
背景技术
根据调试器和被调试程序的运行环境,软件调试可分为两种方式一种是本地调试(Native Debug),这种情况下调试器与被调试的程序往往是运行在同一台机器,即相同的操作系统上的两个进程,调试器进程通过操作系统专门提供的调用接口控制、访问被调试进程;另一种是交叉调试(Corss Debug),这种情况下调试器运行在开发主机上,而被调试程序则运行在目标机上。交叉调试常常又称为远程调试(Remote Debug),一般应用在嵌入式系统的软件开发中,其中用于交叉调试的调试器叫做交叉调试器。进行交叉调试时,开发主机上的交叉调试器以某种方式控制目标机上被调试程序的运行方式,并具有查看和修改目标机上内存单元、寄存器以及被调试进程中变量值等各种调试功能。而提供这种控制功能的就是目标机中称为调试代理的模块,它负责与交叉调试器共同配合以完成对目标机上运行着的进程的调试。一般地,将交叉调试器和调试代理一起称为嵌入式系统调试器。在嵌入式Iinux系统开发中一般用GNU gdb调试应用程序,其原有的运程调试只能用于局域网络,而且不能实现跨平台调试嵌入式系统目标程序。将gdb扩展用于Web环境的调试器现在还没有,本专利提供的Web调试器实现方法目前还没有人实现过,提供了一种分布式调试嵌入式Iinux应用程序的方法。

发明内容
本发明提供的对程序调试进行管理的方法方法、装置及系统,要解决的技术问题是如何实现跨平台的程序调试。为解决上述技术问题,本发明提供了如下技术方案一种对程序调试进行管理的方法,用于调试目标程序的调试端与加载该目标程序的目标端跨平台,其中所述调试端执行如下步骤在得到用于调试目标程序的代码后,将用于调试目标程序的代码封装成第一数据包;获取加载该目标程序的目标端的网络地址信息;将该第一数据包的目标地址作为该目标程序所在主机的网络地址,发送所述第一数据包。一种对程序调试进行管理的方法,用于调试目标程序的调试端与加载该目标程序的目标端跨平台,其中所述目标端执行如下步骤在接收到该第一数据包后,对该第一数据包进行解析,得到调试程序;
执行所述调试程序,得到执行结果;将所述执行结果封装成第二数据包;将所述第一数据包的源地址作为该第二数据包的目标地址,将所述第二数据包发送出去。优选的,所述方法还具有如下特点所述对该第一数据包进行解析,得到调试程序,包括判断解析的代码中是否有“_g”参数,如果有,则将包括该参数的代码作为调试代码。一种对程序调试进行管理的方法,用于调试目标程序的调试端与加载该目标程序的目标端跨平台,其中所述调试端采用上述方法发送调试程序给目标端;所述目标端采用上述方法处理该调试程序。一种对程序调试进行管理的装置,用于调试目标程序,其中加载该目标程序的目标子系统与该装置跨平台,其中所述装置包括第一封装装置,用于在得到用于调试目标程序的代码后,将用于调试目标程序的代码封装成第一数据包;获取装置,与所述第一封装装置相连,用于获取目标子系统的网络地址信息;第一发送装置,与所述获取装置相连,用于将该第一数据包的目标地址作为该目标程序所在主机的网络地址,发送所述第一数据包。一种对程序调试进行管理的装置,该装置加载有一目标程序,且与用于调试目标程序的调试子系统跨平台,其中所述该装置包括解析模块,用于在接收到该第一数据包后,对该第一数据包进行解析,得到调试程序;执行模块,与所述解析模块相连,用于执行所述调试程序,得到执行结果;封装模块,与所述执行模块相连,将所述执行结果封装成第二数据包;发送模块,与所述封装模块相连,将所述第一数据包的源地址作为该第二数据包的目标地址,发送所述第二数据包。优选的,所述装置还具有如下特点所述解析模块,用于判断解析的代码中是否有“_g”参数,如果有,则将包括该参数的代码作为调试代码。一种对程序调试进行管理的系统,用于调试目标程序的调试子系统与加载该目标程序的目标子系统跨平台,其中所述调试子系统采用上述装置发送调试程序给目标端;所述目标子系统采用上述装置处理该调试程序。与现有技术相比,通过将调试端和目标段之间的通信信息封装数据包,并通过网络传输,克服现有技术中调试端和目标端跨平台时,无法进行调试操作的问题。


图I为本发明实施例提供的对程序调试进行管理的方法的流程示意图2为本发明实施例提供的对程序调试进行管理的方法的流程示意图;图3为本发明应用实例提供的调试目标程序的方法的交互示意图;图4为本发明实施例提供的对程序调试进行管理的装置的结构示意图;图5为本发明实施例提供的对程序调试进行管理的装置的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步的详细描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。本发明涉及在Web环境的调试器实现,采用封装gdb与gdbserver通信的RSP协议信息为http数据,建立浏览器端与Web服务器端的gdb与嵌入式系统中的gdbserver的通信的实现Web的远程调试。本发明提供一种分布式调试嵌入式目标程序的方法,在Web服务器端实现调试会话服务,在浏览器端提供调试器控件程序,处理RSP协议信息的代理转发。提供通过浏览器登录Web服务器调试会话服务远程调试嵌入式目标程序,可实现跨平台调试嵌入式Iinux 系统中的目标程序,方便在嵌入式系统开发中的调试环境搭建。图I为本发明实施例提供的对程序调试进行管理的方法的流程示意图。图I所示方法实施例是以解决现有技术中跨平台数据无法将调试程序发送出去的问题为目的,其中用于调试目标程序的调试端与加载该目标程序的目标端跨平台,其中所述调试端执行如下步骤步骤A10、在得到用于调试目标程序的代码后,将用于调试目标程序的代码封装成第一数据包;步骤A20、获取加载该目标程序的目标端的网络地址信息;步骤A30、将该第一数据包的目标地址作为该目标程序所在主机的网络地址,发送所述第一数据包。图2为本发明实施例提供的对程序调试进行管理的方法的流程示意图。与图I 所示方法相对应,其中要解决的技术问题是在跨平台的情况下如何实现对目标程序进行调试,图2所示方法实施例中,用于调试目标程序的调试端与加载该目标程序的目标端跨平台,其中所述目标端执行如下步骤步骤B10、在接收到该第一数据包后,对该第一数据包进行解析,得到调试程序;步骤B20、执行所述调试程序,得到执行结果;步骤B30、将所述执行结果封装成第二数据包;步骤MO、将所述第一数据包的源地址作为该第二数据包的目标地址,发送所述第
二数据包。其中,所述对该第一数据包进行解析,得到调试程序,包括判断解析的代码中是否有“_g”参数,如果有,则将包括该参数的代码作为调试代码。由上可以看出,上述实施例的发送和接收方法,将gdb与gdbserver通信的RSP协议信息封装成http数据进行传输,从而建立浏览器端与Web服务器端的gdb与嵌入式系统中的gdbserver的通信的实现Web的远程调试。另外,本发明还提供一种对程序调试进行管理的方法实施例的交互示意图。其中, 用于调试目标程序的调试端与加载该目标程序的目标端跨平台,其中调试端采用图I所示的方法向目标端发送调试代码;目标端采用图2所示的方法处理该调试代码。本实施例提供的方法,实现通过浏览器登录Web服务器的远程调试服务程序,可在浏览器上远程调试嵌入式目标程序。下面以一应用实例进行说明在本应用实例中,调试端为Web服务器端的gdb,目标端为与嵌入式系统目标机中的gdbserver,建立两者的网络通信协议,如RSP协议。两者将互相通信所使用的RSP协议信息封装成http报文,在Web环境中建立通信,具体来说,包括了 Web服务端对RSP信息的转发、对gdb/MI接口的封装和浏览器端对RSP信息的转发。概括来说,用户登录Web服务器端的调试会话服务,交叉编译将要远程调试的程序,编译时带有_g参数,程序可用于调试。将目标程序从Web服务器端下载到嵌入式目标机中,下载到嵌入式目标机中的程序可以是经stip处理过的程序。其具体实施步骤如下步骤101、用户在嵌入式系统中开启gdbserver,具体方法是 gdbserverl92. 168. 4. 84 1234program,其中 192. 168. 4. 84 为浏览器端主机的 IP 地址, gdbserver发起调试服务,等待gdb与其进行RSP数据的通信。步骤102、用户在浏览器调试界面发起调试请求,输入相应的调试参数,通过在浏览器端的调试器控件与嵌入式系统目标机建立连接,同时Web服务器端开启调试会话服务,调试器控件轮询请求Web服务器端的RSP数据,建立Web服务器端的gdb与嵌入式系统目标机中的gdbserver的RPS数据通信。步骤103、Web服务器的调试会话,封装gdb/MI命令行接口,提供浏览器端的调试界面显示输出,提供RSP协议数据的代理转发功能模块,在IP地址为127. O. O. I建立 socket服务程序,用于获取和转发RSP协议数据。步骤104、利用gdb远程调试的原有方法,在gdb/MI命令行接口输入target remote 127. O. O. I :1234,建立与socket服务程序的通信,其中1234为端口号,端口号用于区分不同的调试会话,不同的调试会话有的gdb与socket服务程序对。端口号的分配由 RSP调试会话服务程度处理,和处理来自浏览器的RSP数据请求。步骤105、gdb在进行远程调试时,gdbserver运行在目标机中,gdb运行在开发主机上,gdb与gdbserver通过串口或局域网络进行通信,因gdb与gdbserver的通信是不能通过internet建立连接,所以将gdb扩展应用于Web环境,需要将gdb与gdbserver通信的RSP信息封装成http格式的信息转发给Browser host和Web host,再由相应的模块解析出RSP信息转发给gdb和gdbserver。如图3所示,当用户要调试程序时,首先将从Web调试器服务器端编译好的目标程序,其可以是经strip处理去掉调试信息的程序,而Web host端由gdb调试的程序是带有调试信息的。将要被调试的程序下载到Etarget host中,由gdbserver开启所要调试的程序,gdbserver IP Port/ttyS0 program,再在浏览器上设置连接参数,开始调试。此时 RSP Transceiver模块将与Etarget host建立连接,在连接建立好后,去请求Web host调试会话服务程序,请求获取RSP数据,将得到的RSP信息转发给gdbserver,再就是去读取 gdbserver回应的RSP信息,封装成http数据post给Web host端的调试会话服务程序,这们就建立了 gdb与gdbserver在Web环境的通信连接。图4为本发明实施例提供的对程序调试进行管理的装置的结构示意图。结合图I 和图3所示的方法,其中加载该目标程序的目标子系统与该装置跨平台,其中所述装置包括第一封装装置401,用于在得到用于调试目标程序的代码后,将用于调试目标程序的代码封装成第一数据包;获取装置402,与所述第一封装装置401相连,用于获取加载该目标程序的目标端的网络地址信息;第一发送装置403,与所述获取装置402相连,用于将该第一数据包的目标地址作为该目标程序所在主机的网络地址,发送所述第一数据包。图5为本发明实施例提供的对程序调试进行管理的装置的结构示意图。结合图2 和3所示的方法,图4所示装置加载有一目标程序,且与用于调试目标程序的调试子系统跨平台,其中所述该装置包括解析装置501,用于在接收到该第一数据包后,对该第一数据包进行解析,得到调试程序;执行装置502,与所述解析装置501相连,用于执行所述调试程序,得到执行结果;第二封装装置503,与所述执行装置502相连,用于将所述执行结果封装成第二数据包;第二发送装置504,与所述第二封装装置503相连,用于将所述第一数据包的源地址作为该第二数据包的目标地址,将所述第二数据包发送出去。具体的,所述解析装置501,用于判断解析的代码中是否有“_g”参数,如果有,则将包括该参数的代码作为调试代码。由上可以看出,上述实施例的发送和接收方法,将gdb与gdbserver通信的RSP协议信息封装成http数据进行传输,从而建立浏览器端与Web服务器端的gdb与嵌入式系统中的gdbserver的通信的实现Web的远程调试。另外,本发明还提供一种对程序调试进行管理的系统,在该系统中,用于调试目标程序的调试子系统与加载该目标程序的目标子系统跨平台,其中所述调试子系统采用图3所示的装置发送调试程序给目标端;所述目标子系统采用图4所示的装置处理该调试程序。本实施例提供的方法,实现通过浏览器登录Web服务器的远程调试服务程序,可在浏览器上远程调试嵌入式目标程序。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
权利要求
1.一种对程序调试进行管理的方法,其特征在于,用于调试目标程序的调试端与加载该目标程序的目标端跨平台,其中所述调试端执行如下步骤在得到用于调试目标程序的代码后,将用于调试目标程序的代码封装成第一数据包; 获取加载该目标程序的目标端的网络地址信息;将该第一数据包的目标地址作为该目标程序所在主机的网络地址,发送所述第一数据包。
2.一种对程序调试进行管理的方法,其特征在于,用于调试目标程序的调试端与加载该目标程序的目标端跨平台,其中所述目标端执行如下步骤在接收到该第一数据包后,对该第一数据包进行解析,得到调试程序;执行所述调试程序,得到执行结果;将所述执行结果封装成第二数据包;将所述第一数据包的源地址作为该第二数据包的目标地址,将所述第二数据包发送出去。
3.根据权利要求2所述的方法,其特征在于,所述对该第一数据包进行解析,得到调试程序,包括判断解析的代码中是否有“_g”参数,如果有,则将包括该参数的代码作为调试代码。
4.一种对程序调试进行管理的方法,其特征在于,用于调试目标程序的调试端与加载该目标程序的目标端跨平台,其中所述调试端采用如权利要求I所述的方法发送调试程序给目标端;所述目标端采用如权利要求2或3所述的方法处理该调试程序。
5.一种对程序调试进行管理的装置,其特征在于,用于调试目标程序,其中加载该目标程序的目标子系统与该装置跨平台,其中所述装置包括第一封装装置,用于在得到用于调试目标程序的代码后,将用于调试目标程序的代码封装成第一数据包;获取装置,与所述第一封装装置相连,用于获取目标子系统的网络地址信息;第一发送装置,与所述获取装置相连,用于将该第一数据包的目标地址作为该目标程序所在主机的网络地址,发送所述第一数据包。
6.一种对程序调试进行管理的装置,其特征在于,该装置加载有一目标程序,且与用于调试目标程序的调试子系统跨平台,其中所述该装置包括解析模块,用于在接收到该第一数据包后,对该第一数据包进行解析,得到调试程序; 执行模块,与所述解析模块相连,用于执行所述调试程序,得到执行结果;封装模块,与所述执行模块相连,将所述执行结果封装成第二数据包;发送模块,与所述封装模块相连,将所述第一数据包的源地址作为该第二数据包的目标地址,发送所述第二数据包。
7.根据权利要求6所述的装置,其特征在于所述解析模块,用于判断解析的代码中是否有“_g”参数,如果有,则将包括该参数的代码作为调试代码。
8.—种对程序调试进行管理的系统,其特征在于,用于调试目标程序的调试子系统与加载该目标程序的目标子系统跨平台,其中所述调试子系统采用如权利要求5所述的装置发送调试程序给目标端; 所述目标子系统采用如权利要求6或7所述的装置处理该调试程序。
全文摘要
本发明提供一种对程序调试进行管理的方法和系统;所述方法中,用于调试目标程序的调试端与加载该目标程序的目标端跨平台,其中所述调试端执行如下步骤在得到用于调试目标程序的代码后,将用于调试目标程序的代码封装成第一数据包;获取加载该目标程序的目标端的网络地址信息;将该第一数据包的目标地址作为该目标程序所在主机的网络地址,发送所述第一数据包。
文档编号G06F11/36GK102609353SQ201210015200
公开日2012年7月25日 申请日期2012年1月17日 优先权日2012年1月17日
发明者刘正伟, 周龙飞 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1