CN101540706B - 一种实现远程调试的方法及系统 - Google Patents
一种实现远程调试的方法及系统 Download PDFInfo
- Publication number
- CN101540706B CN101540706B CN2009101392663A CN200910139266A CN101540706B CN 101540706 B CN101540706 B CN 101540706B CN 2009101392663 A CN2009101392663 A CN 2009101392663A CN 200910139266 A CN200910139266 A CN 200910139266A CN 101540706 B CN101540706 B CN 101540706B
- Authority
- CN
- China
- Prior art keywords
- master control
- control borad
- output
- debugging
- function
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种实现远程调试的方法及系统,所述方法包括:重载操作系统提供的标准输出函数;在所述标准输出函数中加入输出控制开关;将输出控制开关切换到主控板上;主控板接收调试命令进行调试,截获输出的调试信息。采用本发明不再依靠内部telnet登陆获取调试信息,通过对重载的标准输出函数中的输出端进行控制,截获标准输出函数输出的调试信息实现远程操作,能够直接、快速的定位、调试现场目标单板遇到的问题,极大地提高了远程调试的方便性和故障信息收集的准确性,实现对所有目标单板的控制。
Description
技术领域
本发明涉及设备调试领域,具体涉及一种实现远程调试的方法及系统。
背景技术
对于通讯设备而言,在运行过程中,难免会出现各种各样的问题,因此在产品设计之初就应该考虑后续的定位调试手段,以此能够解决问题,将问题波及的范围降低到最小,保证设备的可靠运行,提高产品的服务质量。
现有技术中的设备调试系统涉及客户端PC和调试端,如图1所示,所述调试端涉及主控板和业务单板(又称目标单板或业务板),所述主控板与业务单板通过高速背板进行数据交换,所述业务单板与高速背板以及所述高速背板与主控板之间是通过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类型是主控板CPU,则通过主控板上设有的开关切换模块将输出控制开关切换到主控板上;反之,则所述主控板上设有的开关切换模块向所述目标单板发送切换消息,通过所述目标单板上设有的开关切换模块将输出控制开关切换到主控板上。
在本发明所述的方法中:所述步骤4进一步包括如下处理步骤:
解析主控板接收到的调试命令;
根据待调试目标单板的CPU类型判断是调用主控板操作系统还是所述目标单板操作系统提供的函数进行调试。
进一步的,接上述方案:当所述待调试目标单板的CPU类型是主控板CPU,则调用主控板操作系统提供的函数执行调试命令;反之,则主控板向所述目标单板发送消息,调用目标单板操作系统提供的函数执行调试命令;
通过标准输出函数输出调试信息。
在本发明所述的方法中,所述截获输出的调试信息前,判断输出控制开关是否切换到主控板上,若是截获输出的调试信息,否则,通过目标单板的CPU输出调试信息。
在本发明所述的方法中,进一步还包括:
步骤5,主控板向客户端发送显示所述输出调试信息的消息;
步骤6,将输出控制开关从主控板上切回。
本发明所述的一种实现远程调试的系统,所述系统涉及客户端和调试端,其中调试端包括至少一个主控板以及与所述主控板进行通信的至少一个目标单板,所述主控板与所述客户端进行调试信息交换,所述主控板上设有命令解析模块,用于解析主控板接收的命令,其特征在于:
所述主控板和目标单板上设有函数处理模块、开关切换模块和调试模块;
所述函数处理模块,用于根据补丁操作重载主控板和目标单板上的标准输出函数,并在重载后的标准输出函数中加入输出控制开关;
所述主控板上的开关切换模块,用于在所述目标单板的CPU是主控板的CPU时,将输出控制开关切换到主控板上,反之,向所述目标单板发送输出控制开关切换的消息;
所述目标单板上的开关切换模块,用于输出控制开关切换到主控板上,并向主控板返回切换消息;
所述主控板上的调试模块,用于在待调试目标单板的CPU为主控板的CPU时,调用主控板的操作系统提供的函数执行调试命令,并调用标准输出函数输出调试信息,反之,向所述目标单板发送调试消息;
所述目标单板的调试模块,用于调用目标单板的操作系统提供的函数执行调试命令,调用标准输出函数输出调试信息。
在本发明所述的系统中,所述主控板还包括通信模块和显示模块,
所述通信模块,用于根据待调试目标单板槽位信息建立起调试端与客户端的调试通道;
所述显示模块,用于在输出控制开关切换到主控板上时截获标准函数的输出的调试信息,并向客户端发送显示所述输出调试信息的消息,反之,通知所述目标单板的CPU输出调试信息。
采用本发明不再依靠内部telnet登陆获取调试信息,通过对重载的标准输出函数中的输出端进行控制,截获标准输出函数输出的调试信息,实现远程操作目标单板上的函数或全局变量,查看目标单板的任务,查看或更改目标单板的内存等状态,甚至可以设置断点,相当于在目标单板上挂上调试器,能够直接、快速的定位、调试现场目标单板遇到的问题,极大地提高了远程调试的方便性和故障信息收集的准确性,实现对所有目标单板的控制。
附图说明
图1是现有技术中远程调试系统总体框图;
图2是本发明实施例的方法流程图;
图3是本发明实施例的终端开关控制流程图;
图4是本发明实施例的命令执行和结果回显流程图;
图5是本发明实施例的系统框图。
具体实施方式
本发明的主要技术思想:基于在进行设备调试时,操作系统和测试人员加入的调试指令都是通过单板的操作系统提供的标准输出函数printf来输出调试信息,因此本发明在重载的标准输出函数printf中加入输出控制开关来实现对标准输出函数printf输出端的控制,截获标准输出函数printf输出调试信息,将所述调试信息发给客户端PC,实现对目标单板的远程调试。
下面结合附图对本发明技术方案的实施作进一步的详细描述。
如图2所示,本发明实施例的方法的主要处理步骤如下:
步骤A,重载操作系统提供的标准输出函数printf;
步骤B,在重载后的标准输出函数printf中加入全局变量输出控制开关;
步骤C,通过客户端PC向主控板输入输出控制开关切换命令,将输出控制开关切换到主控板上;
步骤D,通过客户端PC向主控板输入调试指令,进行远程调试,截获输出的调试信息;
步骤F,将输出控制开关从主控板上切回。
其中所述步骤A,通过补丁操作实现重载操作系统提供的标准输出函数printf,其中补丁操作具体是这样实现的:
步骤A1,重写标准输出函数printf;
步骤A2,编译重写后的标准输出函数printf;
步骤A3,链接标准输出函数printf,配置链接选项,使重写的printf函数的链接优先级高于操作系统提供的库函数。
由于实践中,目标单板与二级诊断节点是一一对应的,为了能够实现对目标单板的准确调试,在所述步骤B和C之间增加步骤B′,建立调试通道,实现调试命令归类。
所述步骤B′具体包括,主控板接收输入待调试目标单板槽位的命令;解析所述命令;根据解析结果,进入到所述待调试目标单板对应的二级诊断节点。
如图3所示,所述步骤C,具体包括如下处理步骤:
步骤C1,客户端PC向主控板输入输出控制开关切换命令;
步骤C2,通过主控板上的命令解析模块解析所述切换命令,然后向主控板上的开关切换模块发送切换消息;
步骤C3,判断待调试目标单板的CPU是否为主控板CPU,若是,则将输出控制开关切换到主控板,转入步骤C5,若否,则向所述目标单板发送切换输出控制开关的消息;
步骤C4,所述目标单板将输出控制开关切换到主控板上,并发消息通知主控板输出控制开关切换结果;
步骤C5,主控板通知客户端PC显示当前目标单板类型,以表示此时切换输出控制开关成功。
如图4所示,所述步骤D具体包括如下处理步骤:
步骤D1,客户端PC向主控板输入需要执行的调试命令(或调试函数);
所述调试命令可以是字符串。
步骤D2,主控板对所述调试命令进行解析;
步骤D3,根据解析结果,判断待调试目标单板的CPU是否为主控板的CPU,若是,则转入步骤D4,否则,主控板向所述目标单板发送消息,转入步骤D4′;
步骤D4,调用主控板操作系统提供的函数执行调试命令(或调试函数);
步骤D5,调用标准输出函数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输出调试信息。
上述实施例是以机架式设备为例进行介绍的,但对于盒式设备也同样适用,因为盒式设备比机架式设备简单,从调试角度看类似于机架式设备的主控板。
应当理解的是,对本领域普通技术人员而言,可以根据上述说明加以改进或变换,而所有这些改进或变换都应属于本发明所附权利要求保护的范围。
Claims (7)
1.一种实现远程调试的方法,其特征在于包括如下处理步骤:
步骤1,重载操作系统提供的标准输出函数;
步骤2,在所述标准输出函数中加入输出控制开关;
步骤3,解析主控板接收到的输出控制开关切换命令;当待调试目标单板的CPU类型是主控板CPU,则通过主控板上设有的开关切换模块将输出控制开关切换到主控板上;反之,则所述主控板上设有的开关切换模块向所述目标单板发送切换消息,通过所述目标单板上设有的开关切换模块将输出控制开关切换到主控板上;
步骤4,解析主控板接收到的调试命令,当所述待调试目标单板的CPU类型是主控板CPU,则调用主控板操作系统提供的函数执行调试命令,并通过标准输出函数输出调试信息;反之,则主控板向所述目标单板发送消息,调用目标单板操作系统提供的函数执行调试命令,并通过标准输出函数输出调试信息。
2.如权利要求1所述的方法,其特征在于:
其中步骤1具体包括如下处理步骤:
编译重写的标准输出函数;
链接所述标准输出函数,配置链接选项,使所述标准输出函数的链接优先级高于操作系统提供的库函数;
在所述步骤2和3之间增加如下处理步骤:
主控板接收输入待调试目标单板槽位的命令;
根据对所述命令的解析,进入到所述待调试目标单板对应的二级诊断节点。
3.如权利要求1所述的方法,其特征在于,所述步骤3之后,步骤4之前还包括:
主控板通知客户端显示当前目标单板类型。
4.如权利要求1所述的方法,其特征在于:
截获输出的调试信息前,判断输出控制开关是否切换到主控板上,若是,则截获输出的调试信息,否则,通过目标单板的CPU输出调试信息。
5.如权利要求1、2或3所述的方法,其特征在于还包括:
步骤5,主控板向客户端发送显示所述输出的调试信息的消息;
步骤6,将输出控制开关从主控板上切回。
6.一种实现远程调试的系统,所述系统涉及客户端和调试端,其中调试端包括至少一个主控板以及与所述主控板进行通信的至少一个目标单板,所述主控板与所述客户端进行调试信息交换,所述主控板上设有命令解析模块,用于解析主控板接收的命令,其特征在于:
所述主控板和目标单板上设有函数处理模块、开关切换模块和调试模块;
所述函数处理模块,用于根据补丁操作重载主控板和目标单板上的标准输出函数,并在重载后的标准输出函数中加入输出控制开关;
所述主控板上的开关切换模块,用于在所述目标单板的CPU是主控板的CPU时,将输出控制开关切换到主控板上,反之,向所述目标单板发送输出控制开关切换的消息;
所述目标单板上的开关切换模块,用于将输出控制开关切换到主控板上,并向主控板返回切换消息;
所述主控板上的调试模块,用于在待调试目标单板的CPU为主控板的CPU时,调用主控板的操作系统提供的函数执行调试命令,并调用标准输出函数输出调试信息,反之,向所述目标单板发送调试消息;
所述目标单板的调试模块,用于调用目标单板的操作系统提供的函数执行调试命令,调用标准输出函数输出调试信息。
7.如权利要求6所述的系统,其特征在于:所述主控板还包括通信模块和显示模块,
所述通信模块,用于根据待调试目标单板槽位信息建立起调试端与客户端的调试通道;
所述显示模块,用于在输出控制开关切换到主控板上时截获标准输出函数输出的调试信息,并向客户端发送显示所述输出的调试信息的消息,反之,通知所述目标单板的CPU输出调试信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101392663A CN101540706B (zh) | 2009-04-23 | 2009-04-23 | 一种实现远程调试的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101392663A CN101540706B (zh) | 2009-04-23 | 2009-04-23 | 一种实现远程调试的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101540706A CN101540706A (zh) | 2009-09-23 |
CN101540706B true CN101540706B (zh) | 2011-12-28 |
Family
ID=41123707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101392663A Active CN101540706B (zh) | 2009-04-23 | 2009-04-23 | 一种实现远程调试的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101540706B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101702661B (zh) * | 2009-11-19 | 2012-06-13 | 中兴通讯股份有限公司 | 一种诊断信息的获取方法及装置 |
CN103023709A (zh) * | 2011-09-21 | 2013-04-03 | 中兴通讯股份有限公司 | 网元线卡诊断信息获取方法及装置 |
CN105354136B (zh) | 2015-09-25 | 2018-06-15 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
CN105224454B (zh) | 2015-09-25 | 2018-06-05 | 华为技术有限公司 | 一种调试方法、多核处理器和调试设备 |
CN112039847A (zh) * | 2020-07-28 | 2020-12-04 | 新华三半导体技术有限公司 | 基于分布式设备的调试系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622184B1 (en) * | 1999-06-04 | 2003-09-16 | Kabushiki Kaisha Toshiba | Information processing system |
JP2005292978A (ja) * | 2004-03-31 | 2005-10-20 | Hitachi Kokusai Electric Inc | プログラム制御によって動作する機器の簡易デバッグ方式 |
CN1901569A (zh) * | 2006-07-05 | 2007-01-24 | 华为技术有限公司 | 远程调试方法及系统 |
CN1920782A (zh) * | 2005-08-26 | 2007-02-28 | 中兴通讯股份有限公司 | 一种调试信息输出和控制系统及其方法 |
CN101179438A (zh) * | 2007-11-16 | 2008-05-14 | 中兴通讯股份有限公司 | 一种远程诊断系统及方法 |
-
2009
- 2009-04-23 CN CN2009101392663A patent/CN101540706B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6622184B1 (en) * | 1999-06-04 | 2003-09-16 | Kabushiki Kaisha Toshiba | Information processing system |
JP2005292978A (ja) * | 2004-03-31 | 2005-10-20 | Hitachi Kokusai Electric Inc | プログラム制御によって動作する機器の簡易デバッグ方式 |
CN1920782A (zh) * | 2005-08-26 | 2007-02-28 | 中兴通讯股份有限公司 | 一种调试信息输出和控制系统及其方法 |
CN1901569A (zh) * | 2006-07-05 | 2007-01-24 | 华为技术有限公司 | 远程调试方法及系统 |
CN101179438A (zh) * | 2007-11-16 | 2008-05-14 | 中兴通讯股份有限公司 | 一种远程诊断系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101540706A (zh) | 2009-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101540706B (zh) | 一种实现远程调试的方法及系统 | |
CN102946325B (zh) | 一种基于软件定义网络的网络诊断方法、系统及设备 | |
CN101170438A (zh) | 一种远程串口调试方法及其系统 | |
EP2557736B1 (en) | Method, service board and system for transmitting keyboard, video, mouse data | |
CN101534223A (zh) | 一种对网络交换设备进行测试的装置和方法 | |
CN107979497B (zh) | 一种自动配置方法和装置 | |
CN103905566A (zh) | 一种服务器启动信息远程查看及导出方法 | |
CN108712308B (zh) | 虚拟网络中检测网络设备的方法和装置 | |
CN103841148A (zh) | 监控程序中利用可靠与非可靠网络的主从通信方法及系统 | |
CN111818077A (zh) | 一种基于sdn技术的工控混合蜜罐系统 | |
CN201813382U (zh) | 一种用于运载火箭测试和发射控制的网络监测系统 | |
CN100555231C (zh) | 一种调试信息输出和控制系统及其方法 | |
CN103034206A (zh) | 一种采用后绑定通信插件的工业数据采集系统 | |
TW201929491A (zh) | 寬頻迴路障礙查測系統 | |
CN111865950A (zh) | 一种拟态网络测试仪及测试方法 | |
CN101217413A (zh) | 可扩展系统中可扩展单元的集中调试系统及集中调试方法 | |
CN112463083B (zh) | 一种基板控制管理器信息的远程收集方法和系统 | |
CN103257924B (zh) | Gdb代理调试方法和装置 | |
CN108234425A (zh) | 一种虚拟机流量监控方法 | |
CN110943895A (zh) | 一种网关机、基于Linux系统的网络数据处理方法及装置 | |
EP1796284A1 (en) | System, apparatus and method for testing line | |
CN101667155A (zh) | 一种软件监控方法及软件监控装置 | |
CN106228667A (zh) | 国地税联合办公的硬件叫号系统 | |
CN100403688C (zh) | 一种业务数据包跟踪实现方法 | |
CN112165446A (zh) | 一种VxWorks系统网络侦听方法 |
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 |