CN103257924A - Gdb代理调试方法和装置 - Google Patents

Gdb代理调试方法和装置 Download PDF

Info

Publication number
CN103257924A
CN103257924A CN201310152640XA CN201310152640A CN103257924A CN 103257924 A CN103257924 A CN 103257924A CN 201310152640X A CN201310152640X A CN 201310152640XA CN 201310152640 A CN201310152640 A CN 201310152640A CN 103257924 A CN103257924 A CN 103257924A
Authority
CN
China
Prior art keywords
gdb
message
master control
interface board
interface
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.)
Granted
Application number
CN201310152640XA
Other languages
English (en)
Other versions
CN103257924B (zh
Inventor
钟晋明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201310152640.XA priority Critical patent/CN103257924B/zh
Publication of CN103257924A publication Critical patent/CN103257924A/zh
Application granted granted Critical
Publication of CN103257924B publication Critical patent/CN103257924B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供了一种GDB代理调试方法和装置,技术方案为:目标设备的主控板在自身的外接端口接收GDB client的GDB报文,根据GDB报文中携带的调试目标信息确定调试目标是主控板或某一接口板,将GDB报文发送到调试目标,由调试目标送至部署在调试目标上的GDB server。本发明不需要在接口板上外接网线就能够实现对接口板上的程序的调试。

Description

GDB代理调试方法和装置
技术领域
本申请涉及计算机技术领域,特别涉及GNU调试器(GNU debugger,GDB)代理调试方法和装置。
背景技术
GDB是GNU开源组织发布的一个强大的UNIX/LINUX下的程序调试工具。一般来说,GDB主要完成下面四个方面的功能:启动调试程序,按照自定义的要求运行程序;让被调试的程序在所指定的断点处停住,以便调试者检查此时程序中所发生的事;动态的改变程序的执行环境。
参见图1所示的GDB调试方式示意图,调试者在PC机使用GDB client程序,在目标设备上运行GDB server程序,GDB client和GDB server之间采用网线或串口线相连,并利用GDB远程串行协议(Remote Serial Protocol,RSP)进行通信实现程序调试,RSP协议数据的基本格式为:“$..........#xx”。
现有技术中,当目标设备为框式设备时,调试者是通过目标设备的接口板上的调试网口进行程序调试,这在以下情况下中存在很多的缺点:设备正在运行,调试时单板不能被拔出,如果拔出单板,就会破坏现场环境,也会影响现有的业务;框式设备通常都是密闭的,网线不易接进去,而且,当接口单元所有槽位插满时,并没有其它的间隙使调试网线能接进去;另外,调试者与目标设备的距离一般比较远,可能不在同一地址,这使得接调试网线十分困难。
发明内容
有鉴于此,本发明的目的在于提供一种GDB代理调试方法,该方法不需要在接口板上外接网线就能够实现对接口板上的程序的调试。
为实现上述目的,本发明提供的技术方案为:
一种GDB代理调试方法,应用于在各接口板中部署了GDB Server的目标设备;包括:
在目标设备的主控板上的外接端口接收来自GDB client的GDB报文;
根据GDB报文中携带的调试目标信息确定GDB报文对应的调试目标;
如果GDB报文对应的调试目标是一接口板,则将GDB报文通过板间通信接口发送到该接口板,以使该接口板将GDB报文中携带的调试目标信息清除后发送到部署在该接口板上的GDB server,并将该GDB server返回的GDB响应报文添加上GDB报文中携带的调试目标信息后通过板间通信接口发送回主控板;
接收该接口板发送回的GDB响应报文,将该GDB响应报文通过所述外接端口返回给GDB client。
另一种GDB代理调试方法,应用于在各接口板中部署了GDB Server的目标设备;包括:
接口板接收目标设备的主控板通过板间通信接口发送的携带调试目标信息的GDB报文;
将GDB报文中携带的调试目标信息清除后发送到部署在该接口板上的GDBserver;
接收该GDB server返回的GDB响应报文,将GDB响应报文添加上GDB报文中携带的调试目标信息后通过板间通信接口发送回主控板。
一种GDB代理调试装置,应用于在各接口板中部署了GDB Server的目标设备;该装置部署在目标设备的主控板上,包括:第一收发单元、第一控制单元;
所述第一收发单元,用于在目标设备的主控板上的外接端口接收来自GDBclient的GDB报文,如果第一控制单元确定该GDB报文对应的调试目标是一接口板,则将该GDB报文通过板间通信接口发送到该接口板,以使该接口板将该GDB报文中携带的调试目标信息清除后发送到部署在该接口板上的GDB server,并将该GDB server返回的GDB响应报文添加上该GDB报文中携带的调试目标信息后通过板间通信接口发送回主控板;用于接收该接口板发送回的GDB响应报文,将该GDB响应报文通过所述外接端口返回给GDB client;
所述第一控制单元,用于第一收发单元在目标设备的主控板上的外接端口接收到GDB报文后,根据该GDB报文中携带的调试目标信息确定该GDB报文对应的调试目标。
另一种GDB代理调试装置,应用于在各接口板中部署了GDB Server的目标设备;该装置部署在目标设备的接口板上,包括:第二收发单元、第二控制单元;
所述第二收发单元,用于接收目标设备的主控板通过板间通信接口发送的携带调试目标信息的GDB报文,在第二控制单元将该GDB报文中携带的调试目标信息清除后,将该GDB报文发送到部署在本接口板上的GDB Server;用于接收该GDB Server返回的GDB响应报文,在第二控制单元将该GDB响应报文添加上GDB报文中携带的调试目标信息后,将该GDB响应报文通过板间通信接口发送回主控板;
所述第二控制单元,用于第二收发单元接收到目标设备的主控板通过板间通信接口发送的GDB报文后,清除该GDB报文中携带的调试目标信息;用于第二收发单元接收到部署在本接口板上的GDB server返回的GDB响应报文后,将该GDB响应报文添加上GDB报文中携带的调试目标信息。
综上所述,本发明中,目标设备的主控板在外部端口接收GDB Client发送的GDB报文,根据GDB报文中携带的测试目标信息确定GDB报文对应的测试目标,当测试目标是接口板时,将GDB报文通过板间通信接口发送到该接口板,最终达到该接口板上的GDB Server。本发明只利用目标设备的主控板上的外接端口就可以实现对接口板上的程序的调试,不需要在接口板上外接网线。
附图说明
图1是现有技术GDB调试方式示意图;
图2是本发明GDB代理调试过程示意图;
图3是本发明实施例一GDB代理调试流程示意图;
图4是本发明实施例二GDB代理调试流程示意图;
图5是本发明实施例应用于目标设备的主控板的GDB代理调试装置的结构示意图;
图6是本发明实施例应用于目标设备的接口板的GDB代理调试装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明实施例中,使用目标设备(目标设备为框式设备)的主控板上的外接端口接收来自GDB Client的GDB报文,通过在GDB报文中携带调试目标信息指定调试目标是主控板或目标设备上的某一接口板,由主控板将GDB报文送至调试目标。需要调试目标设备上的某一接口板时,GDB代理调试过程如图2所示:
GDB client向目标设备发送携带调试目标信息的GDB报文;GDB报文从主控板上的外接端口进入目标设备,主控板对GDB报文进行解析确定对应的目标接口板,然后将GDB报文通过板间通信接口发送至目标接口板;
目标接口板在板间通信接口接收板间通信报文,当确定接收到的板间通信报文为GDB报文时,将GDB报文中携带的调试目标信息清除,然后送至部署在目标接口板上的GDB server;该GDB server根据GDB报文执行程序调试操作,返回GDB响应报文至目标接口板,目标接口板将GDB报文中携带的调试目标信息添加到GDB响应报文中,然后通过板间通信接口送至主控板,由主控板将GDB响应报文通过主控板上的外接端口返回到GDB client。
在上述过程中,根据主控板上接收GDB报文的外接端口的不同,本发明至少有两种实施方式,下面分别进行说明。
实施例一
目标设备的主控板上用于接收GDB报文和发送GDB响应报文的外接端口为辅助串口。
参见图3,图3是本发明实施例一GDB代理调试流程示意图,包括以下步骤:
步骤301、GDB client向目标设备发送GDB报文,其中GDB报文中携带调试目标信息。
本实施例中,调试者在GDB client端输入Target remote COM12SSPP COM1命令触发GDB代理调试过程,GDB client根据该命令生成GDB报文发送到目标设备,其中,2SSPP在GDB报文中作为前缀,SS表示调试目标板信息(如果调试目标是主控板,则该调试目标板信息用主控板对应的标识信息表示,如果调试目标是一接口板,则该调试目标板信息用该接口板对应的标识信息表示,例如该接口板的槽位号),PP表示目标CPU信息(用目标CPU编号表示,PP为0表示GDB报文的调试目标,例如目标接口板中仅包含一个CPU,GDB报文的目标CPU为该CPU)。
步骤302、目标设备的主控板在自身的辅助串口接收来自GDB client的GDB报文。
步骤303、根据GDB报文中携带的调试目标信息判断GDB报文的调试目标,如果调试目标为主控板,则转至步骤304执行,如果调试目标为一接口板,则转至步骤307执行。
这里,当GDB报文携带的调试目标信息中包括一接口板对应的标识信息时,确定GDB报文对应的调试目标为该标识信息对应的接口板,当GDB报文携带的调试目标信息中包括主控板对应的标识信息,则确定GDB报文对应的调试目标为主控板。
步骤304、GDB报文的调试目标为主控板,主控板清除GDB报文中携带的测试目标信息,将修改后的GDB报文发送到部署在主控板上的GDB Server。
本实施例中,通过为GDB报文增加的前缀,在前缀中携带调试目标信息,因此,清除GDB报文中携带的测试目标信息的方法为:删除GDB报文中的前缀2SSPP。
步骤305、部署在主控板上的GDB Server根据GDB报文执行程序调试,返回GDB响应报文到主控板。
步骤306、主控板将GDB报文中携带的调试目标信息添加到GDB响应报文,将修改后的GDB响应报文通过主控板上的辅助串口返回给GDB Client。
调试主控板的情况下,本步骤之后,一次GDB报文交互过程完成。
步骤307、GDB报文的调试目标为一接口板,主控板将GDB报文通过板间通信接口发送到目标接口板。
步骤308、目标接口板在板间通信接口接收GDB报文,根据GDB报文中携带的调试目标信息确定GDB报文的目标CPU,并清除GDB报文中携带的测试目标信息,将修改后的GDB报文送至目标CPU的GDB server。
目标接口板在板间通信接口接收到的报文也可以是其他类型的板间通信报文,因此,在接收到板间通信报文时,需要先判断板间通信报文是否是GDB报文,是则继续执行后续将GDB报文送至部署在目标接口板的GDB Server的步骤,否则,需按照现有方法处理板间通信报文。
当目标接口板上只包含一个CPU时,GDB Client可以将GDB报文携带的调试目标信息中的目标CPU信息设置为0,这样,当目标接口板检测确定GDB报文携带的调试目标信息中的目标CPU为0时,就可以确定GDB报文的目标CPU是该接口板上包含的唯一CPU,将GDB报文发送到该唯一CPU的GDB Server。
当目标接口板上包含多个CPU时,GDB Client可以将GDB报文携带的调试目标信息中的目标CPU信息设置为目标CPU的编号,这样,当目标接口板检测确定GDB报文携带的调试目标信息中的目标CPU信息为某一CPU编号时,就可以确定GDB报文的目标CPU是该CPU编号代表的CPU,将GDB报文发送到该CPU的GDB Server。
本实施例中,通过为GDB报文增加的前缀,在前缀中携带调试目标信息,因此,清除GDB报文中携带的测试目标信息的方法为:删除GDB报文中的前缀2SSPP。
步骤309、目标CPU的GDB server根据GDB报文执行程序调试,返回GDB响应报文至目标接口板。
步骤310、目标接口板将GDB报文中携带的调试目标信息添加到GDB响应报文中,然后将GDB响应报文通过板间通信接口发送到主控板。
步骤311、主控板将GDB响应报文通过主控板上的辅助串口返回给GDBClient。
本实施例中,主GDB代理将GDB报文中携带的调试目标信息添加到GDB响应报文中的方法为:将GDB报文的前缀添加到GDB响应报文中作为GDB响应报文的前缀。
至此,利用目标设备中主控板的辅助串口完成对目标接口板的一次GDB代理调试。
在图3所示本发明实施例中,目标设备的接口板还可以从该接口板的调试网口接收来自GDB Client的GDB报文。对于从接口板的调试网口接收到的GDB报文和从主控板的辅助串口进入并经由主控板通过板间通信接口转发来的GDB报文,可以通过设置不同的工作模式(包括代理模式和普通模式)来加以区分,接口板接收到GDB报文时,如果确定该GDB报文是从板间通信接口接收到的,则可以设置当前工作模式为代理模式,这样,当接口板将该GDB报文发送到部署在该接口板上的GDB server并接收到该GDB server返回的GDB响应报文之后,可以根据当前工作模式将GDB响应报文发送到主GDB代理;如果确定该GDB报文是从该接口板的调试网口接收到的GDB报文,则可以设置当前工作模式为普通模式,这样,当从GDB代理将该GDB报文发送到部署在该接口板上的GDB server并接收到该GDB server返回的GDB响应报文之后,可以根据当前工作模式将GDB响应报文通过该接口板的调试网口发送到GDB Client。
从接口板的调试网口接收到的GDB报文不携带2SSPP前缀,而经由主控板通过板间通信接口转发来的GDB报文携带2SSPP前缀,可以通过是否携带前缀对这两种GDB报文进行区分。
实施例二
目标设备的主控板上用于接收GDB报文的外接端口为调试网口。
参见图4,图4是本发明实施例二GDB代理调试流程示意图,包括以下步骤:
步骤401、GDB client向目标设备发送GDB报文,其中GDB报文中携带调试目标信息。
本实施例中,调试者在GDB client端通过输入“Gdb.exe udp:目的IP地址:目的端口号”命令触发GDB代理调试过程,GDB client根据该命令生成GDB报文发送到目标设备,其中,GDB报文的目的IP地址、目的MAC地址分别为目标设备中主控板的调试网口的IP地址(也即上述命令中的目的IP地址)和MAC地址,GDB报文的目的端口号为1SSPP,其中,SS表示调试目标板信息(如果调试目标是主控板,则该调试目标板信息用主控板对应的标识信息表示,如果调试目标是一接口板,则该调试目标板信息用该接口板对应的标识信息表示,例如该接口板的槽位号),PP表示目标CPU信息(用目标CPU编号表示,PP为0表示GDB报文的调试目标,例如目标接口板中仅包含一个CPU,GDB报文的目标CPU为该CPU)。
步骤402、目标设备的主控板在自身的调试网口接收来自GDB client的GDB报文。
步骤403、主控板根据GDB报文中携带的调试目标信息判断GDB报文的调试目标,如果调试目标为主控板,则转至步骤404执行,如果调试目标为一接口板,则转至步骤407执行。
这里,当GDB报文携带的调试目标信息中包括一接口板对应的标识信息时,确定GDB报文对应的调试目标为该标识信息对应的接口板,当GDB报文携带的调试目标信息中包括主控板对应的标识信息时,则确定GDB报文对应的调试目标为主控板。
步骤404、GDB报文的调试目标为主控板,主控板清除GDB报文中携带的调试目标信息,将修改后的GDB报文发送到部署在主控板上的GDB Server。
本实施例中,由于是利用GDB报文的目的端口号字段携带调试目标信息,因此清除GDB报文中携带的调试目标信息的方法为:将GDB报文的目的端口号恢复为现有技术中通过主控板的调试网口调试主控板时GDB报文的目的端口号:10000。
步骤405、部署在主控板上的GDB Server根据GDB报文执行程序调试,返回GDB响应报文到主控板。
步骤406、主控板将GDB报文中携带的调试目标信息添加到GDB响应报文,将修改后的GDB响应报文通过主控板的调试网口返回给GDB Client。
调试主控板的情况下,本步骤之后,一次GDB报文交互过程完成。
步骤407、主控板将GDB报文通过板间通信接口发送到目标接口板。
步骤408、目标接口板在板间通信接口接收GDB报文,根据GDB报文中携带的调试目标信息确定GDB报文的目标CPU,将GDB报文的目的IP地址、目的MAC地址分别修改为目标接口板的调试网口的IP地址、目标接口板的调试网口的MAC地址,并清除GDB报文中携带的调试目标信息,将修改后的GDB报文送至目标CPU的GDB server。
目标接口板在板间通信接口接收到的报文也可以是其他类型的板间通信报文,因此,在接收到板间通信报文时,需要先判断板间通信报文是否是GDB报文,是则继续执行后续将GDB报文送至部署在目标接口板的GDB Server的步骤,否则,需按照现有方法处理板间通信报文。
当目标接口板上只包含一个CPU时,GDB Client可以将GDB报文携带的调试目标信息中的目标CPU信息设置为0,这样,当目标接口板检测确定GDB报文携带的调试目标信息中的目标CPU为0时,就可以确定GDB报文的目标CPU是该接口板上包含的唯一CPU,将GDB报文发送到该唯一CPU的GDB Server。
当目标接口板上只包含多个CPU时,GDB Client可以将GDB报文携带的调试目标信息中的目标CPU信息设置目标CPU的编号,这样,当目标接口板检测确定GDB报文携带的调试目标信息中的目标CPU信息为某一CPU编号时,就可以确定GDB报文的目标CPU是该CPU编号代表的CPU,将GDB报文发送到该CPU的GDB Server。
本实施例中,由于是利用GDB报文的目的端口号字段携带调试目标信息,因此清除GDB报文中携带的调试目标信息的方法为:将GDB报文的目的端口号恢复为现有技术中通过接口板的调试网口调试接口板时GDB报文的目的端口号:10000。
步骤409、目标CPU的GDB server根据GDB报文执行程序调试,返回GDB响应报文至目标接口板。
目标CPU的GDB server发送的GDB响应报文的源IP地址、源MAC地址、源端口号分别为目标接口板的调试网口的IP地址、目标接口板的调试网口的MAC地址、10000。
步骤410、目标接口板将GDB报文中携带的调试目标信息添加到GDB响应报文,将修改后的GDB响应报文通过板间通信接口发送到主控板。
步骤411、主控板将GDB响应报文的源IP地址、源MAC地址分别修改为主控板的调试网口的IP地址、主控板的调试网口的MAC地址,将修改后的GDB响应报文通过主控板的调试网口返回到GDB client。
本步骤中,“将GDB响应报文的源IP地址、源MAC地址分别修改后主控板的调试网口的IP地址、主控板的调试网口的MAC地址”的操作也可以放在步骤411中,由目标接口板完成并通过板间通信接口发送修改后的GDB响应报文到主控板。
本实施例中,主控板将GDB报文中携带的调试目标信息添加到GDB响应报文中的方法为:将GDB报文的目的端口号作为GDB响应报文的源端口号。
至此,利用目标设备中主控板的调试网口完成对目标接口板的一次GDB代理调试。
在图4所示本发明实施例中,目标设备的接口板还可以从该接口板的调试网口接收GDB报文。对于从接口板的调试网口接收到的GDB报文和从主控板的调试网口进入并经由主控板通过板间通信接口转发来的GDB报文,可以通过设置不同的工作模式(包括代理模式和普通模式)来加以区分,接口板接收到GDB报文时,如果确定该GDB报文是从板间通信接口接收到的,则可以设置当前工作模式为代理模式,这样,当从GDB代理将该GDB报文发送到该接口板上的GDB server并接收到GDB server返回的GDB响应报文之后,可以根据当前工作模式将GDB响应报文发送到主GDB代理;如果确定该GDB报文是从该接口板的调试网口接收到的GDB报文,则可以设置当前工作模式为普通模式,这样,当从GDB代理将该GDB报文发送到该接口板上的GDB server并接收到GDBserver返回的GDB响应报文之后,可以根据当前工作模式将GDB响应报文通过该接口板的调试网口发送到GDB Client。
图4所示本发明实施例中,接口板在自身的调试网口接收到的GDB报文,其目的IP地址、目的MAC地址、目的端口号分别为该接口板的调试网口的IP地址、该接口板的调试网口的MAC地址、10000;而经由主控板上的主GDB代理通过板间通信接口转发来的GDB报文,其目的IP地址、目的MAC地址、目的端口号分别为主控板的调试网口的IP地址、主控板的调试网口的MAC地址、1SSPP(SS值该接口板对应的标识信息,PP值为目标CPU编号)。可以通过GDB报文的目的IP地址、目的MAC地址、目的端口号字段中的一个或多个来对这两种GDB报文进行区分。
实际上,在图3及图4所示本发明实施例中,也可以利用GDB报文的其它字段携带调试目标信息,清除GDB报文中的调试目标信息以及在GDB响应报文中添加调试目标信息的具体实现方法也根据具体字段的不同而不同,不再一一赘述。
从上述图3及图4所示本发明实施例可以看出,利用主控板的外接端口接收GDB报文,并根据GDB报文中携带的调试目标信息确定GDB报文的调试目标,并将GDB报文发送到对应的调试目标,从而不需要在接口板上外接网线就可以实现对一个或多个接口板中的程序的调试。
以上对本发明实施例GDB代理调试方法进行了详细说明,本发明具体实施例中基于同样的发明构思,提出一种应用于目标设备的主控板的GDB代理调试装置和一种应用于目标设备的接口板的GDB代理调试装置,下面结合图5、图6进行详细说明。
参见图5,图5是本发明实施例应用于目标设备的主控板的GDB代理调试装置的结构示意图,目标设备的各接口板中部署有GDB Server;该装置部署在目标设备的主控板上,包括:第一收发单元501、第一控制单元502;其中,
第一收发单元501,用于在目标设备的主控板上的外接端口接收来自GDBclient的GDB报文,如果第一控制单元502确定该GDB报文对应的调试目标是一接口板,则将该GDB报文通过板间通信接口发送到该接口板,以使该接口板将该GDB报文中携带的调试目标信息清除后发送到部署在该接口板上的GDB server,并将该GDB server返回的GDB响应报文添加上该GDB报文中携带的调试目标信息后通过板间通信接口发送回主控板;用于接收该接口板发送回的GDB响应报文,将该GDB响应报文通过所述外接端口返回给GDB client;
第一控制单元502,用于第一收发单元501在目标设备的主控板上的外接端口接收到GDB报文后,根据该GDB报文中携带的调试目标信息确定该GDB报文对应的调试目标。
上述装置中,目标设备的主控板上部署有GDB Server;
所述第一控制单元502,进一步用于确定第一收发单元501接收到的GDB报文对应的调试目标是主控板时,清除该GDB报文中携带的调试目标信息;用于在第一收发单元501接收到部署在主控板上的GDB Server返回的GDB响应报文后,将GDB报文中携带的测试目标信息添加到GDB响应报文中;
所述第一收发单元501,用于在第一控制单元502清除GDB报文中携带的调试目标信息后,将该GDB报文发送到部署在主控板上的GDB Server;用于接收该GDB Server返回的GDB响应报文,并在第一控制单元502将该GDB响应报文添加上GDB报文中携带的调试目标信息后通过所述外接端口返回给GDB client。
上述装置中,所述第一控制单元502根据GDB报文中携带的调试目标信息确定GDB报文对应的调试目标时,用于:如果调试目标信息中包括一接口板对应的标识信息,则确定GDB报文对应的调试目标为该标识信息对应的接口板,如果调试目标信息中包括主控板对应的标识信息,则确定GDB报文对应的调试目标为主控板。
上述装置中,所述外接端口为主控板上的辅助串口或主控板上的调试网口;
其中,当所述外接端口为主控板上的调试网口,
所述第一收发单元501从接口板接收到的GDB响应报文的目的IP地址和目的MAC地址分别为主控板的调试网口的IP地址和MAC地址;
或者,
所述第一收发单元501从接口板接收到的GDB响应报文的目的IP地址和目的MAC地址分别为该接口板的调试网口的IP地址和MAC地址;
所述第一控制单元502,进一步用于在第一收发单元501接收到接口板发送回的GDB响应报文之后,将该GDB响应报文返回给GDB Client之前,将GDB响应报文的源IP地址、源MAC地址分别修改为主控板的调试网口的IP地址和MAC地址。
参见图6,图6是本发明实施例应用于目标设备的接口板的GDB代理调试装置的结构示意图,目标设备的各接口板中部署有GDB Server;该装置部署在目标设备的接口板上,包括:第二收发单元601、第二控制单元602;其中,
第二收发单元601,用于接收目标设备的主控板通过板间通信接口发送的携带调试目标信息的GDB报文,在第二控制单元602将该GDB报文中携带的调试目标信息清除后,将该GDB报文发送到部署在本接口板上的GDB Server;用于接收该GDBServer返回的GDB响应报文,在第二控制单元602将该GDB响应报文添加上GDB报文中携带的调试目标信息后,将该GDB响应报文通过板间通信接口发送回主控板;
第二控制单元602,用于第二收发单元601接收到目标设备的主控板通过板间通信接口发送的GDB报文后,清除该GDB报文中携带的调试目标信息;用于第二收发单元601接收到部署在本接口板上的GDB server返回的GDB响应报文后,将该GDB响应报文添加上GDB报文中携带的调试目标信息。
上述装置中,
第二控制单元602,进一步用于在第二收发单元601接收到GDB报文后,设置当前工作模式,其中,第二收发单元601在通过板间通信接口接收到GDB报文时,设置当前工作模式为代理模式;第二收发单元601在通过本接口板的调试网口收到GDB报文时,设置当前工作模式为普通模式;
第二控制单元602,进一步用于第二收发单元601将GDB报文发送到部署在本接口板的GDB server并接收到该GDB server返回的GDB响应报文后,在当前工作模式为代理模式时,将GDB响应报文添加上GDB报文中携带的调试目标信息;
第二收发单元601,用于在第二控制单元602将GDB响应报文添加上GDB报文中携带的调试目标信息后,将该GDB响应报文通过板间通信接口发送回主控板;用于将GDB报文发送到部署在本接口板的GDB server并接收到该GDB server返回的GDB响应报文后,在当前工作模式为普通模式时,将GDB响应报文通过自身的调试网口发送回GDB Client。
上述装置中,所述GDB报文是主控板在自身的辅助串口或调试网口接收到的;
在所述GDB报文是主控板在自身的调试网口接收到的情况下,
第二控制单元602在第二收发单元601接收到主控板通过板间通信接口发来的GDB报文之后,将GDB报文发送到部署在本接口板上的GDB Server之前,进一步用于:将GDB报文的目的IP地址、目的MAC地址分别修改为本接口板的调试网口的IP地址和MAC地址;
第二控制单元602在第二收发单元601接收到部署在本接口板上的GDB Server返回的GDB响应报文之后,将GDB响应报文通过板间通信接口发送回主控板之前,进一步用于:将GDB报文的目的IP地址、目的MAC地址分别修改为主控板的调试网口的IP地址和MAC地址;
或者,
第二收发单元601接收到部署在本接口板上的GDB Server返回的GDB响应报文之后,将GDB响应报文通过板间通信接口发送回主控板,以使主控板将GDB报文的目的IP地址、目的MAC地址分别修改为主控板的调试网口的IP地址和MAC地址。
上述装置中,
接口板中仅包含一个CPU;
所述第二收发单元601在将GDB报文发送到部署在本接口板上的GDB server时,用于:将GDB报文发送到本接口板仅包含的一个CPU的GDB server;
或者,
接口板中包含多个CPU;
所述调试目标信息包括目标CPU信息;
所述第二收发单元601在将GDB报文发送到部署在本接口板上的GDB server时,用于:根据GDB报文携带的调试目标信息中的目标CPU信息,将GDB报文发送到该CPU的GDB server。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种GDB代理调试方法,应用于在各接口板中部署了GDB Server的目标设备;其特征在于,该方法包括:
在目标设备的主控板上的外接端口接收来自GDB client的GDB报文;
根据GDB报文中携带的调试目标信息确定GDB报文对应的调试目标;
如果GDB报文对应的调试目标是一接口板,则将GDB报文通过板间通信接口发送到该接口板,以使该接口板将GDB报文中携带的调试目标信息清除后发送到部署在该接口板上的GDB server,并将该GDB server返回的GDB响应报文添加上GDB报文中携带的调试目标信息后通过板间通信接口发送回主控板;
接收该接口板发送回的GDB响应报文,将该GDB响应报文通过所述外接端口返回给GDB client。
2.根据权利要求1所述的GDB代理调试方法,其特征在于,
目标设备的主控板上部署有GDB Server;
该方法进一步包括:
如果GDB报文对应的调试目标是主控板,则将GDB报文中携带的调试目标信息清除后发送到部署在主控板上的GDB Server,接收该GDB Server返回的GDB响应报文,将GDB响应报文添加上GDB报文携带的调试目标信息后通过所述外接端口返回给GDB client。
3.根据权利要求2所述的GDB代理调试方法,其特征在于,
所述根据GDB报文中携带的调试目标信息确定GDB报文对应的调试目标的方法为:如果调试目标信息中包括一接口板对应的标识信息,则确定GDB报文对应的调试目标为该标识信息对应的接口板,如果调试目标信息中包括主控板对应的标识信息,则确定GDB报文对应的调试目标为主控板。
4.根据权利要求2所述的GDB代理调试方法,其特征在于,
所述外接端口为主控板上的辅助串口或者主控板上的调试网口;
其中,当所述外接端口为主控板上的调试网口时,
主控板从接口板接收到的GDB响应报文的目的IP地址和目的MAC地址分别为主控板的调试网口的IP地址和MAC地址;
或者,
主控板从接口板接收到的GDB响应报文的目的IP地址和目的MAC地址分别为该接口板的调试网口的IP地址和MAC地址;
主控板从接口板接收到GDB响应报文之后,将GDB响应报文返回给GDB Client之前,进一步包括:将GDB响应报文的源IP地址、源MAC地址分别修改为主控板的调试网口的IP地址和MAC地址。
5.一种GDB代理调试方法,应用于在各接口板中部署了GDB Server的目标设备;其特征在于,该方法包括:
接口板接收目标设备的主控板通过板间通信接口发送的携带调试目标信息的GDB报文;
将GDB报文中携带的调试目标信息清除后发送到部署在该接口板上的GDBserver;
接收该GDB server返回的GDB响应报文,将GDB响应报文添加上GDB报文中携带的调试目标信息后通过板间通信接口发送回主控板。
6.根据权利要求5所述的GDB代理调试方法,其特征在于,
接口板接收到GDB报文后,进一步设置当前工作模式,其中,在通过板间通信接口接收到GDB报文时,设置当前工作模式为代理模式;在通过本接口板的调试网口收到GDB报文时,设置当前工作模式为普通模式;
接口板将GDB报文发送到部署在该接口板的GDB server并接收到该GDB server返回的GDB响应报文后,在当前工作模式为代理模式时,将GDB响应报文添加上GDB报文中携带的调试目标信息后通过板间通信接口发送回主控板;在当前工作模式为普通模式时,将GDB响应报文通过自身的调试网口发送回GDB Client。
7.根据权利要求5所述的GDB代理调试方法,其特征在于,
所述GDB报文是主控板在自身的辅助串口或调试网口接收到的;
在所述GDB报文是主控板在自身的调试网口接收到的情况下,
接口板接收到主控板发送的GDB报文之后,将GDB报文发送到部署在该接口板上的GDB Server之前,进一步包括:将GDB报文的目的IP地址、目的MAC地址分别修改为该接口板的调试网口的IP地址和MAC地址;
接口板接收到部署在该接口板上的GDB Server返回的GDB响应报文之后,将GDB响应报文通过板间通信接口发送回主控板之前,进一步包括:将GDB报文的目的IP地址、目的MAC地址分别修改为主控板的调试网口的IP地址和MAC地址;
或者,
接口板接收到部署在该接口板上的GDB Server返回的GDB响应报文之后,将GDB响应报文通过板间通信接口发送回主控板,以使主控板将GDB报文的目的IP地址、目的MAC地址分别修改为主控板的调试网口的IP地址和MAC地址。
8.根据权利要求5、6、或7所述的GDB代理调试方法,其特征在于,
接口板中仅包含一个CPU;
接口板将GDB报文发送到部署在该接口板上的GDB server的方法为:将GDB报文发送到该接口板仅包含的一个CPU的GDB server;
或者,
接口板中包含多个CPU;
所述调试目标信息包括目标CPU信息;
接口板将GDB报文发送到部署在该接口板上的GDB server的方法为:根据GDB报文携带的调试目标信息中的目标CPU信息,将GDB报文发送到该CPU的GDBserver。
9.一种GDB代理调试装置,应用于在各接口板中部署了GDB Server的目标设备;其特征在于,该装置部署在目标设备的主控板上,包括:第一收发单元、第一控制单元;
所述第一收发单元,用于在目标设备的主控板上的外接端口接收来自GDB client的GDB报文,如果第一控制单元确定该GDB报文对应的调试目标是一接口板,则将该GDB报文通过板间通信接口发送到该接口板,以使该接口板将该GDB报文中携带的调试目标信息清除后发送到部署在该接口板上的GDB server,并将该GDB server返回的GDB响应报文添加上该GDB报文中携带的调试目标信息后通过板间通信接口发送回主控板;用于接收该接口板发送回的GDB响应报文,将该GDB响应报文通过所述外接端口返回给GDB client;
所述第一控制单元,用于第一收发单元在目标设备的主控板上的外接端口接收到GDB报文后,根据该GDB报文中携带的调试目标信息确定该GDB报文对应的调试目标。
10.根据权利要求9所述的GDB代理调试装置,其特征在于,
目标设备的主控板上部署有GDB Server;
所述第一控制单元,进一步用于确定第一收发单元接收到的GDB报文对应的调试目标是主控板时,清除该GDB报文中携带的调试目标信息;用于在第一收发单元接收到部署在主控板上的GDB Server返回的GDB响应报文后,将GDB报文中携带的测试目标信息添加到GDB响应报文中;
所述第一收发单元,用于在第一控制单元清除GDB报文中携带的调试目标信息后,将该GDB报文发送到部署在主控板上的GDB Server;用于接收该GDB Server返回的GDB响应报文,并在第一控制单元将该GDB响应报文添加上GDB报文中携带的调试目标信息后通过所述外接端口返回给GDB client。
11.根据权利要求10所述的GDB代理调试装置,其特征在于,
所述第一控制单元根据GDB报文中携带的调试目标信息确定GDB报文对应的调试目标时,用于:如果调试目标信息中包括一接口板对应的标识信息,则确定GDB报文对应的调试目标为该标识信息对应的接口板,如果调试目标信息中包括主控板对应的标识信息,则确定GDB报文对应的调试目标为主控板。
12.根据权利要求10所述的GDB代理调试装置,其特征在于,
所述外接端口为主控板上的辅助串口或主控板上的调试网口;
其中,当所述外接端口为主控板上的调试网口时,
所述第一收发单元从接口板接收到的GDB响应报文的目的IP地址和目的MAC地址分别为主控板的调试网口的IP地址和MAC地址;
或者,
所述第一收发单元从接口板接收到的GDB响应报文的目的IP地址和目的MAC地址分别为该接口板的调试网口的IP地址和MAC地址;
所述第一控制单元,进一步用于在第一收发单元接收到接口板发送回的GDB响应报文之后,将该GDB响应报文返回给GDB Client之前,将GDB响应报文的源IP地址、源MAC地址分别修改为主控板的调试网口的IP地址和MAC地址。
13.一种GDB代理调试装置,应用于在各接口板中部署了GDB Server的目标设备;其特征在于,该装置部署在目标设备的接口板上,包括:第二收发单元、第二控制单元;
所述第二收发单元,用于接收目标设备的主控板通过板间通信接口发送的携带调试目标信息的GDB报文,在第二控制单元将该GDB报文中携带的调试目标信息清除后,将该GDB报文发送到部署在本接口板上的GDB Server;用于接收该GDB Server返回的GDB响应报文,在第二控制单元将该GDB响应报文添加上GDB报文中携带的调试目标信息后,将该GDB响应报文通过板间通信接口发送回主控板;
所述第二控制单元,用于第二收发单元接收到目标设备的主控板通过板间通信接口发送的GDB报文后,清除该GDB报文中携带的调试目标信息;用于第二收发单元接收到部署在本接口板上的GDB server返回的GDB响应报文后,将该GDB响应报文添加上GDB报文中携带的调试目标信息。
14.根据权利要求13所述的GDB代理调试装置,其特征在于,
第二控制单元,进一步用于在第二收发单元接收到GDB报文后,设置当前工作模式,其中,第二收发单元在通过板间通信接口接收到GDB报文时,设置当前工作模式为代理模式;第二收发单元在通过本接口板的调试网口收到GDB报文时,设置当前工作模式为普通模式;
第二控制单元,进一步用于第二收发单元将GDB报文发送到部署在本接口板的GDB server并接收到该GDB server返回的GDB响应报文后,在当前工作模式为代理模式时,将GDB响应报文添加上GDB报文中携带的调试目标信息;
第二收发单元,用于在第二控制单元将GDB响应报文添加上GDB报文中携带的调试目标信息后,将该GDB响应报文通过板间通信接口发送回主控板;用于将GDB报文发送到部署在本接口板的GDB server并接收到该GDB server返回的GDB响应报文后,在当前工作模式为普通模式时,将GDB响应报文通过自身的调试网口发送回GDB Client。
15.根据权利要求13所述的GDB代理调试装置,其特征在于,
所述GDB报文是主控板在自身的辅助串口或调试网口接收到的;
在所述GDB报文是主控板在自身的调试网口接收到的情况下,
第二控制单元在第二收发单元接收到主控板通过板间通信接口发来的GDB报文之后,将GDB报文发送到部署在本接口板上的GDB Server之前,进一步用于:将GDB报文的目的IP地址、目的MAC地址分别修改为本接口板的调试网口的IP地址和MAC地址;
第二控制单元在第二收发单元接收到部署在本接口板上的GDB Server返回的GDB响应报文之后,将GDB响应报文通过板间通信接口发送回主控板之前,进一步用于:将GDB报文的目的IP地址、目的MAC地址分别修改为主控板的调试网口的IP地址和MAC地址;
或者,
第二收发单元接收到部署在本接口板上的GDB Server返回的GDB响应报文之后,将GDB响应报文通过板间通信接口发送回主控板,以使主控板将GDB报文的目的IP地址、目的MAC地址分别修改为主控板的调试网口的IP地址和MAC地址。
16.根据权利要求13、14、或15所述的GDB代理调试装置,其特征在于,
接口板中仅包含一个CPU;
所述第二收发单元在将GDB报文发送到部署在本接口板上的GDB server时,用于:将GDB报文发送到本接口板仅包含的一个CPU的GDB server;
或者,
接口板中包含多个CPU;
所述调试目标信息包括目标CPU信息;
所述第二收发单元在将GDB报文发送到部署在本接口板上的GDB server时,用于:根据GDB报文携带的调试目标信息中的目标CPU信息,将GDB报文发送到该CPU的GDB server。
CN201310152640.XA 2013-04-26 2013-04-26 Gdb代理调试方法和装置 Active CN103257924B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310152640.XA CN103257924B (zh) 2013-04-26 2013-04-26 Gdb代理调试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310152640.XA CN103257924B (zh) 2013-04-26 2013-04-26 Gdb代理调试方法和装置

Publications (2)

Publication Number Publication Date
CN103257924A true CN103257924A (zh) 2013-08-21
CN103257924B CN103257924B (zh) 2016-08-17

Family

ID=48961857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310152640.XA Active CN103257924B (zh) 2013-04-26 2013-04-26 Gdb代理调试方法和装置

Country Status (1)

Country Link
CN (1) CN103257924B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009113A (zh) * 2017-11-28 2018-05-08 安徽皖通邮电股份有限公司 一种双主控系统中调试串口的实现方法
CN111522772A (zh) * 2020-04-27 2020-08-11 杭州迪普科技股份有限公司 一种业务板配置的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012069883A1 (en) * 2010-11-25 2012-05-31 Freescale Semiconductor, Inc. Method of debugging software and corresponding computer program product
CN102945202A (zh) * 2012-10-15 2013-02-27 中国科学院软件研究所 一种基于代理的rtems系统调试方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012069883A1 (en) * 2010-11-25 2012-05-31 Freescale Semiconductor, Inc. Method of debugging software and corresponding computer program product
CN102945202A (zh) * 2012-10-15 2013-02-27 中国科学院软件研究所 一种基于代理的rtems系统调试方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108009113A (zh) * 2017-11-28 2018-05-08 安徽皖通邮电股份有限公司 一种双主控系统中调试串口的实现方法
CN108009113B (zh) * 2017-11-28 2020-10-09 安徽皖通邮电股份有限公司 一种双主控系统中调试串口的实现方法
CN111522772A (zh) * 2020-04-27 2020-08-11 杭州迪普科技股份有限公司 一种业务板配置的方法及装置

Also Published As

Publication number Publication date
CN103257924B (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
CN107463499B (zh) Adb远程连接方法、装置、设备及存储介质
EP2891977A1 (en) Method, system and device for managing virtual machine software in cloud environment
CN103927256A (zh) 一种控制多个安卓装置的方法
CN108804313B (zh) 一种远程调试程序的方法、装置和服务器
CN109654666B (zh) 一种调试机组的方法、装置及设备
CN101170438A (zh) 一种远程串口调试方法及其系统
JP2018010638A5 (zh)
CN106909327A (zh) 一种用于工控设备的显示控制装置
CN112256570A (zh) 远程调试方法、装置、设备及存储介质
CN104536900A (zh) 控制移动终端的方法及装置
KR101977401B1 (ko) 동적 모드버스 프로토콜 매핑을 지원하는 통신 장치
CN102426548B (zh) 嵌入式系统的调试方法、调试器和调试系统
CN103257924A (zh) Gdb代理调试方法和装置
CN101540706B (zh) 一种实现远程调试的方法及系统
CN107222586B (zh) 一种自动识别局域网内bmc ip的方法
CN104158913A (zh) 一种显示器界面的测试方法
WO2017084402A1 (zh) 一种多应用程序的调试系统和方法
CN110134559B (zh) 一种bmc故障检测方法、系统及相关组件
CN101192190A (zh) 一种对数字信号处理器执行调试查询命令的方法及装置
US6957179B2 (en) On-chip emulator communication
CN110795212B (zh) 基于框式设备的主备主控配置同步方法和装置
CN110733037B (zh) 信号的处理方法及装置、存储介质及处理器
KR101649790B1 (ko) 배전 선로 자동화 단말장치
CN109614337B (zh) 一种基于linux系统的性能测试系统及测试工具
KR100329652B1 (ko) 패킷망을 이용한 원격지 보드 제어방법

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
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230620

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right