一种实现远程调试的方法及系统的制作方法

文档序号:7707814阅读:85来源:国知局
专利名称:一种实现远程调试的方法及系统的制作方法
技术领域
本发明涉及设备调试领域,具体涉及一种实现远程调试的方法及系统。
背景技术
对于通讯设备而言,在运行过程中,难免会出现各种各样的问题,因此在 产品设计之初就应该考虑后续的定位调试手段,以此能够解决问题,将问题波 及的范围降低到最小,保证设备的可靠运行,提高产品的服务质量。
现有技术中的设备调试系统涉及客户端PC和调试端,如图l所示,所述调
试端涉及主控板和业务单板(又称目标单板或业务板),所述主控板与业务单板 通过高速背板进行数据交换,所述业务单板与高速背板以及所述高速背板与主
控板之间是通过100BASE-T (快速以太网)或SERDES (并串行与串并行转换 器)进行数据通讯,而主控板与客户端PC通过100BASE-T或RS232进行数据 通讯。
基于上述设备调试系统,现行比较常用的调试方法主要包括两类, 一类是 釆用本地串口的方式进行调试,通过本地串口的方式观察客户端PC上运行的控 制台上输出的打印信息,但是由于串口的固有传输特性,因此采用这种调试方 式时,主控板与目标单板不能相距太远。
另 一类调试方法以内部telnet登陆方式实现,将主控板通过串口切换到内部 协议栈,然后配置好客户端PC的路由,然后通过内部telnet直接登陆到主控板 或者目标单板操作系统提供的控制台上查看打印的调试信息,或者直接调用函 数进行定位调试。
对于发生在实验室的设备调试,上述两类方法均可以使用,但是对于在现场运行的设备,测试人员的调试方式就大大受限了,由于受限于距离,采用本
地串口进行调试是行不通的,但是此时内部telnet登陆方式实现的调试方法也存 在很多问题,系统在正常启动之后,默认都是使用TCP/IP协议栈,由于现场的 设备没有连接串口,因此不能进行协议栈之间的切换,即带外通信不可用,故 无法通过内部telnet登陆到主控板或者目标单板操作系统提供的控制台上查看 打印的调试信息,因此只能依靠客户端PC上运行的控制台输出的调试信息,这 样获取的打印信息非常有限,给测试人员进行问题定位调试带来不便,影响解 决问题的速度,甚至会因调试信息缺失,导致调试无法完成。
综上所述,现有技术中在进行设备远程调试时还有待完善和发展。

发明内容
本发明提出一种远程调试设备的方法用以解决在进行设备远程调试时,依 赖内部telnet登陆获取调试信息的问题。为此,本发明还提供了一种远程调试设 备的系统。
本发明具体是这样实现的
本发明所述的 一种实现远程调试的方法,包括如下处理步骤
步骤1,重载操作系统提供的标准输出函数;
步骤2,在所述标准输出函数中加入输出控制开关;
步骤3,将输出控制开关切换到主控板上;
步骤4,主控板接收调试命令进行调试,截获输出的调试信息。
在本发明所述的方法中,其中步骤1具体包括如下处理步骤
编译重写的标准输出函数;
链接所述标准输出函数,配置链接选项,使所述标准输出函数的链接优先 级高于操作系统提供的库函数;
在所述步骤2和3之间增加如下处理步骤 主控板接收输入待调试目标单板槽位的命令;根据对所述命令的解析,进入到所述待调试目标单板对应的二级诊断节点。
在本发明所述的方法中,所述步骤3进一步包括如下处理步骤 解析主控板接收到的输出控制开关切换命令;
还是待调试目标单板上设有的开切换模块将输出控制开关切换到主控板上; 主控板通知客户端显示当前目标单板类型。
进一步的,接上述方案当所述待调试目标单板的CPU类型是主控板CPU, 则通过主控板上设有的开关切换模块将输出控制开关切换到主控板上;反之, 则所述主控板上设有的开关切换模块向所述目标单板发送切换消息,通过所述 目标单板上设有的开关切换模块将输出控制开关切换到主控板上。
在本发明所述的方法中所述步骤4进一步包括如下处理步骤
解析主控板接收到的调试命令;
根据待调试目标单板的CPU类型判断是调用主控板操作系统还是所述目标 单板操作系统提供的函数进行调试。
进一步的,接上述方案当所述待调试目标单板的CPU类型是主控板CPU, 则调用主控板操作系统提供的函数执行调试命令;反之,则主控板向所述目标 单板发送消息,调用目标单板操作系统提供的函数执行调试命令;
通过标准输出函数输出调试信息。
在本发明所述的方法中,所述截获输出的调试信息前,判断输出控制开关 是否切换到主控板上,若是截获输出的调试信息,否则,通过目标单板的CPU 输出调试信息。
在本发明所述的方法中,进一步还包括
步骤5,主控板向客户端发送显示所述输出调试信息的消息;
步骤6 ,将输出控制开关从主控板上切回。
本发明所述的一种实现远程调试的系统,所述系统涉及客户端和调试端, 其中调试端包括至少一个主控板以及与所述主控板进行通信的至少一个目标单板,所述主控板与所述客户端进行调试信息交换,所述主控板上设有命令解析
模块,用于解析主控板接收的命令,其特征在于
所述主控板和目标单板上设有函数处理模块、开关切换模块和调试模块;
所述函数处理模块,用于根据补丁操作重载主控板和目标单板上的标准输 出函数,并在重载后的标准输出函数中加入输出控制开关;
所述主控板上的开关切换模块,用于在所述目标单板的CPU是主控板的 CPU时,将输出控制开关切换到主控板上,反之,向所述目标单板发送输出控 制开关切换的消息;
所述目标单板上的开关切换模块,用于输出控制开关切换到主控板上,并 向主控板返回切换消息;
所述主控板上的调试模块,用于在待调试目标单板的CPU为主控板的CPU 时,调用主控板的操作系统提供的函数执行调试命令,并调用标准输出函数输 出调试信息,反之,向所述目标单板发送调试消息;
所述目标单板的调试模块,用于调用目标单板的操作系统提供的函数执行 调试命令,调用标准输出函数输出调试信息。
在本发明所述的系统中,所述主控板还包括通信才莫块和显示才莫块,
所述通信模块,用于根据待调试目标单板槽位信息建立起调试端与客户端 的调试通道;
所述显示模块,用于在输出控制开关切换到主控板上时截获标准函数的输 出的调试信息,并向客户端发送显示所述输出调试信息的消息,反之,通知所 述目标单板的CPU输出调试信息。
采用本发明不再依靠内部telnet登陆获取调试信息,通过对重载的标准输出 函数中的输出端进行控制,截获标准输出函数输出的调试信息,实现远程操作 目标单板上的函数或全局变量,查看目标单板的任务,查看或更改目标单板的 内存等状态,甚至可以设置断点,相当于在目标单板上挂上调试器,能够直接、 快速的定位、调试现场目标单板遇到的问题,极大地提高了远程调试的方便性和故障信息收集的准确性,实现对所有目标单板的控制。


图l是现有技术中远程调试系统总体框图2是本发明实施例的方法流程图3是本发明实施例的终端开关控制流程图4是本发明实施例的命令执行和结果回显流程图5是本发明实施例的系统框图。
具体实施例方式
本发明的主要技术思想基于在进行设备调试时,操作系统和测试人员加 入的调试指令都是通过单板的操作系统提供的标准输出函数printf来输出调试 信息,因此本发明在重载的标准输出函数printf中加入输出控制开关来实现对标 准输出函数printf输出端的控制,截获标准输出函数printf输出调试信息,将所 述调试信息发给客户端PC,实现对目标单板的远程调试。
下面结合附图对本发明技术方案的实施作进一步的详细描述。
如图2所示,本发明实施例的方法的主要处理步骤如下
步骤A,重载操作系统提供的标准输出函数printf;
步骤B,在重载后的标准输出函数printf中加入全局变量输出控制开关;
步骤C,通过客户端PC向主控板输入输出控制开关切换命令,将输出控制 开关切换到主控板上;
步骤D,通过客户端PC向主控板输入调试指令,进行远程调试,截获输出 的调试信息;
步骤F ,将输出控制开关从主控板上切回。
其中所述步骤A,通过补丁操作实现重载操作系统提供的标准输出函数 printf,其中补丁操作具体是这样实现的 步骤A!,重写标准输出函数printf;
9步骤A2,编译重写后的标准输出函数printf;
步骤A"链接标准输出函数printf,配置链接选项,使重写的printf函数的 链接优先级高于操作系统提供的库函数。
由于实践中,目标单板与二级诊断节点是一一对应的,为了能够实现对目 标单板的准确调试,在所述步骤B和C之间增加步骤B',建立调试通道,实现 调试命令归类。
所述步骤B'具体包括,主控板接收输入待调试目标单板槽位的命令;解析
所述命令;根据解析结果,进入到所述待调试目标单板对应的二级诊断节点。 如图3所示,所述步骤C,具体包括如下处理步骤 步骤Q,客户端PC向主控板输入输出控制开关切换命令; 步骤C2,通过主控板上的命令解析模块解析所述切换命令,然后向主控板
上的开关切换模块发送切换消息;
步骤C3,判断待调试目标单板的CPU是否为主控板CPU,若是,则将输出
控制开关切换到主控板,转入步骤C5,若否,则向所述目标单才反发送切换输出
控制开关的消息;
步骤C4,所述目标单板将输出控制开关切换到主控板上,并发消息通知主 控板输出控制开关切换结果;
步骤C5,主控板通知客户端PC显示当前目标单板类型,以表示此时切换 输出控制开关成功。
如图4所示,所述步骤D具体包括如下处理步骤
步骤客户端PC向主控板输入需要执行的调试命令(或调试函数);
所述调试命令可以是字符串。
步骤D2,主控板对所述调试命令进行解析;
步骤D3,根据解析结果,判断待调试目标单板的CPU是否为主控板的CPU, 若是,则转入步骤D4,否则,主控板向所述目标单板发送消息,转入步骤D4,; 步骤D4,调用主控板操作系统提供的函数执行调试命令(或调试函数);步骤Ds,调用标准输出函数printf输出调试信息;
步骤D6,判断输出控制开关是否切换到主控板上,若是,则转入步骤D7, 否则,通过所述目标单板的CPU输出调试信息,流程结束; 步骤D7,主控板截获输出的调试信息;
步骤D8,主控板向客户端PC发送显示所述输出调试信息的消息,完成远 程调试。
步骤D4,,调用目标单板操作系统提供的函数执行调试命令(或调试函数); 步骤D5,,调用标准输出函数printf输出调试信息;
步骤D6,,判断输出控制开关是否切换到主控板上,若是,则转入步骤D7, 否则,通过所述目标单板的CPU输出调试信息,流程结束。
如图5所示为本发明实施例的系统框图,对于远程调试系统包括,客户端 PC和调试端,其中,所述调试端包括至少一个主控板、以及与该主控板进行通 信的至少一个目标单板,所述主控板与所述客户端PC进行调试信息的交换。
所述主控板上设有通信模块,所述通信模块用于根据调试信息建立起调试 端与客户端PC的调试通道,所述调试信息包括,待调试目标单板槽位信息,建 立起调试通道后,当主控板接收到客户端PC发出的命令后,后续所有的操作是 在与待调试目标单板对应的二级诊断节点下进行的。
所述主控板上还设有命令解析模块、显示模块,所述主控板和目标单板上 设有函数处理模块、开关切换模块和调试模块。
所述函数处理模块,用于根据补丁操作重载主控板和目标单板上的标准输 出函数,并在重载后的标准输出函数中加入全局变量输出控制开关;
所述命令解析模块,用于解析客户端PC发送给主控板的命令,所述命令包 括,输出控制开关切换命令和调试命令。
所述主控板上的开关切换模块,用于根据解析结果判断待调试目标单板的 CPU是否为主控板的CPU,若是,则将输出控制开关切换到主控板上,否则, 通过所述目标单板的CPU输出调试信息。所述目标单板上的开关切换模块,接收到所述主控板上的开关切换模块发 出的输出控制开关切换的消息后,用于将输出控制开关切换到主控板上,并发 送消息将输出控制开关切换结果通知主控板。
所述主控板上的调试模块,根据所述命令解析模块的解析结果,当所述待
调试目标单板的CPU为主控板的CPU时,用于调用主控板的操作系统提供的函 数执行调试命令,调用标准输出函数输出调试信息;当所述待调试目标单板的 CPU是非主控板的CPU时,用于向目标单板发送调试消息。
所述目标单板的调试模块,用于调用目标单板的操作系统提供的函数执行 调试命令,调用标准输出函数输出调试信息。
显示模块,用于截获标准函数的输出的调试信息,并向客户端PC发送显示 所述输出调试信息的消息。
在截获调试信息前,所述显示模块用于判断所述输出控制开关是否切换到 主控板上,若是,截获输出的调试信息,否则,通知所述目标单板的CPU输出 调试信息。
上述实施例是以机架式设备为例进行介绍的,但对于盒式设备也同样适用, 因为盒式设备比机架式设备简单,从调试角度看类似于机架式设备的主控板。
应当理解的是,对本领域普通技术人员而言,可以根据上述说明加以改进 或变换,而所有这些改进或变换都应属于本发明所附权利要求保护的范围。
权利要求
1.一种实现远程调试的方法,其特征在于包括如下处理步骤步骤1,重载操作系统提供的标准输出函数;步骤2,在所述标准输出函数中加入输出控制开关;步骤3,将输出控制开关切换到主控板上;步骤4,主控板接收调试命令进行调试,截获输出的调试信息。
2. 如权利要求1所述的方法,其特征在于 其中步骤1具体包括如下处理步骤 编译重写的标准输出函数;链接所述标准输出函数,配置链接选项,使所述标准输出函数的链接优先 级高于操作系统提供的库函数;在所述步骤2和3之间增加如下处理步骤 主控板接收输入待调试目标单板槽位的命令;根据对所述命令的解析,进入到所述待调试目标单板对应的二级诊断节点。
3. 如权利要求1所述的方法,其特征在于所述步骤3进一步包括如下处理 步骤解析主控板接收到的输出控制开关切换命令;根据待调试目标单板的CPU类型判断是通过主控板上设有的开关切换模块 还是待调试目标单板上设有的开切换模块将输出控制开关切换到主控板上; 主控板通知客户端显示当前目标单板类型。
4. 如权利要求3所述的方法,其特征在于当所述待调试目标单板的CPU类型是主控板CPU,则通过主控板上设有的 开关切换模块将输出控制开关切换到主控板上;反之,则所述主控板上设有的 开关切换模块向所述目标单板发送切换消息,通过所述目标单板上设有的开关 切换模块将输出控制开关切换到主控板上。
5. 如权利要求1所述的方法,其特征在于,所述步骤4进一步包括如下处 理步骤解析主控板接收到的调试命令;根据待调试目标单板的CPU类型判断是调用主控板操作系统还是所述目标 单板操作系统提供的函数进行调试。
6. 如权利要求5所述的方法,其特征在于当所述待调试目标单板的CPU类型是主控板CPU,则调用主控板操作系统 提供的函数执行调试命令;反之,则主控板向所述目标单板发送消息,调用目 标单板操作系统提供的函数执行调试命令;通过标准输出函数输出调试信息。
7. 如权利要求l、 5或6所述的方法,其特征在于所述截获输出的调试信息前,判断输出控制开关是否切换到主控板上,若 是截获输出的调试信息,否则,通过目标单板的CPU输出调试信息。
8. 如权利要求l、 2、 3或5所述的方法,其特征在于还包括 步骤5,主控板向客户端发送显示所述输出调试信息的消息; 步骤6,将输出控制开关从主控板上切回。
9. 一种实现远程调试的系统,所述系统涉及客户端和调试端,其中调试端 包括至少一个主控板以及与所述主控板进行通信的至少一个目标单板,所述主 控板与所述客户端进行调试信息交换,所述主控板上设有命令解析模块,用于 解析主控板接收的命令,其特征在于所述主控板和目标单板上设有函数处理模块、开关切换模块和调试模块; 所述函数处理模块,用于根据补丁操作重载主控板和目标单板上的标准输出函数,并在重载后的标准输出函数中加入输出控制开关;所述主控板上的开关切换模块,用于在所述目标单板的CPU是主控板的CPU时,将输出控制开关切换到主控板上,反之,向所述目标单板发送输出控制开关切换的消息;所述目标单板上的开关切换模块,用于输出控制开关切换到主控板上,并向主控板返回切换消息;所述主控板上的调试模块,用于在待调试目标单板的CPU为主控板的CPU 时,调用主控板的操作系统提供的函数执行调试命令,并调用标准输出函数输 出调试信息,反之,向所述目标单^反发送调试消息;所述目标单板的调试模块,用于调用目标单板的操作系统提供的函数执行 调试命令,调用标准输出函数输出调试信息。
10.如权利要求9所述的系统,其特征在于所述主控板还包括通信模块 和显示模块,所述通信模块,用于根据待调试目标单板槽位信息建立起调试端与客户端 的调试通道;所述显示模块,用于在输出控制开关切换到主控板上时截获标准函数的输 出的调试信息,并向客户端发送显示所述输出调试信息的消息,反之,通知所 述目标单板的CPU输出调试信息。
全文摘要
本发明公开了一种实现远程调试的方法及系统,所述方法包括重载操作系统提供的标准输出函数;在所述标准输出函数中加入输出控制开关;将输出控制开关切换到主控板上;主控板接收调试命令进行调试,截获输出的调试信息。采用本发明不再依靠内部telnet登陆获取调试信息,通过对重载的标准输出函数中的输出端进行控制,截获标准输出函数输出的调试信息实现远程操作,能够直接、快速的定位、调试现场目标单板遇到的问题,极大地提高了远程调试的方便性和故障信息收集的准确性,实现对所有目标单板的控制。
文档编号H04L12/26GK101540706SQ20091013926
公开日2009年9月23日 申请日期2009年4月23日 优先权日2009年4月23日
发明者聪 王, 石江涛 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1