CN115981928A - 处理器远程调试方法、系统以及存储介质 - Google Patents
处理器远程调试方法、系统以及存储介质 Download PDFInfo
- Publication number
- CN115981928A CN115981928A CN202211207205.8A CN202211207205A CN115981928A CN 115981928 A CN115981928 A CN 115981928A CN 202211207205 A CN202211207205 A CN 202211207205A CN 115981928 A CN115981928 A CN 115981928A
- Authority
- CN
- China
- Prior art keywords
- debugging
- processor
- remote
- signal
- debug
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种处理器远程调试方法、系统以及存储介质。处理器远程调试方法中,处理器设置于远程服务器中,包括配置客户端调试设备,所述客户端调试设备向所述处理器发送标准格式的调试命令;解析所述调试命令,调用与所述调试命令相对应的函数,将所述调试命令转换成调试信号;发送所述调试信号至所述处理器;根据所述调试信号对所述处理器进行调试并返回调试结果;发送所述调试结果至相对应的所述函数;转换所述调试结果,将所述调试结果转换成所述标准格式的所述函数的返回值,并将所述返回值发送给所述客户端调试设备;所述调试信号包括所述处理器在调试过程中所执行指令的指令信息及调试参数信息。本发明的远程调试能够真正实现远程调试。
Description
技术领域
本发明是有关于一种处理器的调试方法,且特别是有关于一种对远程服务器中处理器进行远程调试的处理器远程调试方法、系统以及存储介质。
背景技术
随着计算机技术、通信技术以及云计算的飞速发展,越来越多的服务器应用于网络、电信等各行各业,远程服务器中的处理器(CPU、GPU、RISC-V)数量越来越多,复杂程度原来越高,当处理器出现故障时,就需要对其进行调试、排错,使其恢复正常。如何能更好的对远程服务器进行维护显得越来越重要。
图1是现有技术中处理器调试系统的结构示意图。如图1所示,现有技术中,远程调试设备11通过基板管理控制器12(BMC:Baseboard Management Controller),可以远程获取远程服务器13中处理器14的工作状态、错误信息,并通过基板管理控制器12对远程服务器13中的处理器14进行简单调试。但是,更复杂的调试还需要通过物理调试器15来进行。物理调试器15则需要工程师在远程服务器的现场进行调试,操作复杂且调试效率较低。
因此,如何提供一种能够完全摆脱对物理调试器的依赖,实现真正远程调试的方法,提高调试效率,实为需要解决的问题之一。
发明内容
本发明的实施例提供一种处理器远程调试方法、系统以及存储介质,可以完全摆脱对物理调试器的依赖,实现真正远程调试,提高调试效率。
本发明一实施方式的处理器远程调试方法,所述处理器设置于远程服务器中,包括以下步骤:配置客户端调试设备,所述客户端调试设备向所述处理器发送标准格式的调试命令;解析所述调试命令,调用与所述调试命令相对应的函数,将所述调试命令转换成调试信号;发送所述调试信号至所述处理器;根据所述调试信号对所述处理器进行调试并返回调试结果;发送所述调试结果至相对应的所述函数;转换所述调试结果,将所述调试结果转换成所述标准格式的所述函数的返回值,并将所述返回值发送给所述客户端调试设备;其中所述调试信号包括所述处理器在调试过程中所执行指令的指令信息及调试参数信息。
上述的调试方法,其中,所述对所述处理器进行调试的步骤包括对所述处理器进行排错、追踪和/或扫描转存操作。
上述的调试方法,其中,所述配置客户端调试设备的步骤进一步包括:
绑定socket,以实现所述客户端调试设备与所述远程服务器之间的通信。
上述的调试方法,其中,所述函数包括输入输出控制函数。
上述的调试方法,其中,发送所述调试信号至所述处理器的步骤包括通过联合测试工作组总线将所述调试信号发送给所述处理器。
上述的调试方法,其中,所述联合测试工作组总线与设置于所述远程服务器中的测试设计接口以及调试访问端口电性连接,所述调试信号通过所述测试设计接口以及所述调试访问端口发送给所述处理器。
本发明一实施方式的处理器远程调试系统,所述处理器设置于远程服务器中,包括:一客户端调试设备,用于向所述处理器发送标准格式的调试命令;一远程调试转换单元,用于解析所述调试命令,调用与所述调试命令相对应的函数,将所述调试命令转换成调试信号;一基板管理控制器,用于接收所述调试信号并将所述调试信号发送至所述处理器,对所述处理器进行调试,并将调试结果返回给所述远程调试转换单元;所述远程调试转换单元还用于将所述调试结果转换成所述标准格式的所述函数的返回值,并将所述返回值发送给所述客户端调试设备;其中所述调试信号包括所述处理器在调试过程中所执行指令的指令信息及调试参数信息。
上述的调试系统,其中,所述对所述处理器进行调试包括对所述处理器进行排错、追踪和/或扫描转存操作。
上述的调试系统,其中,所述客户端调试设备与所述远程调试转换单元之间通过绑定socket实现通信。
上述的调试系统,其中,所述远程调试转换单元设置于所述基板管理控制器中或与所述基板管理控制器分立设置。
上述的调试系统,其中,所述函数包括输入输出控制函数。
上述的调试系统,其中,所述基板管理控制器进一步包括基板控制驱动单元,所述基板控制驱动单元用于将所述调试信号发送给所述处理器。
上述的调试系统,其中,所述调试系统进一步包括联合测试工作组总线,所述联合测试工作组总线与设置于所述远程服务器中的测试设计接口以及调试访问端口电性连接,所述调试信号通过所述测试设计接口以及所述调试访问端口发送给所述处理器。
本发明一实施方式的存储介质,用于存储计算机程序,所述计算机程序用于执行上述的任意一种处理器远程调试方法。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1是现有技术中处理器调试系统的结构示意图。
图2是本发明一实施例处理器远程调试方法的流程示意图。
图3是本发明一实施例处理器远程调试系统的结构示意图。
图4是本发明另一实施例处理器远程调试系统的结构示意图。
其中,附图标记:
100:调试方法
S101-S106:步骤
11:远程调试设备
12:基板管理控制器
13:远程服务器
14:处理器
15:物理调试器
200:调试系统
201:客户端调试设备
202:基板管理控制器
203:远程调试转换单元
204:基板控制驱动单元
205:联合测试工作组总线
206:测试设计接口
207:调试访问端口
具体实施方式
下面结合附图对本发明的结构原理和工作原理作具体的描述:
于本发明中,处理器通常设置于远程服务器中,客户端调试设备通过网络与远程服务器之间实现通信,以便于进行远程调试。
图2是本发明一实施例处理器远程调试方法的流程示意图。如图2所示,本发明的处理器远程调试方法100包括以下步骤:
步骤S101,配置客户端调试设备。首先启动客户端调试设备,绑定socket以实现客户端调试设备与远程服务器之间的通信,然后运行客户端调试设备中的调试软件。
在处理器的复杂调试过程中,通常需要处理器执行相关的操作,才可以准确的找到处理器的故障内容,并清除故障。本发明在配置客户端调试设备时,不仅在调试软件的参数设置界面中配置需要调试的相关调试参数,还配置有在调试过程中处理器所需要执行的指令的相关指令信息,客户端调试设备将调试参数以及指令信息进行封装,将其封装成标准格式的调试命令。在完成调试命令的封装之后,向处理器发送调试命令。
于本发明中,客户端调试设备中运行的调试软件有多种,可以是通用的处理器调试软件,例如Trace32 PowerView/GDB/RegModel/Telnet/Jupyter等,本发明并不以此为限。每一种调试软件所采用的数据格式并不完全相同,指令的格式也不同,本发明将指令信息以及调试信息封装成标准格式的调试命令,标准格式例如可以是JSON格式,也可以是其他格式,本发明并不以此为限。
步骤S102,解析调试命令。于本发明中,调试命令从客户端调试设备通过socket发送至远程调试转换单元,如步骤S101中所述,客户端调试设备绑定有socket,例如可以是绑定远程调试转换单元socket,以实现客户端调试设备与远程调试转换单元之间的通信。
远程调试转换单元利用其中的远程调试函数对接收到的调试命令进行解析,将JSON格式的调试命令解析出指令信息(指令ID)以及调试信息(时钟、频率等),并将调试命令转换成调试信号。远程调试函数可以是例如connnect/disconnect/getcapabilities/set frequency/get frequency/shiftbit等函数,用于将调试命令转换成JTAG调试信号。
解析完成之后,远程调试转换单元调用基板管理控制器(BMC)中基板控制驱动单元所提供的对应的输入输出控制函数(IOCTL Input/Output Control),将调试命令转换成JTAG(Joint Test Action Group)格式的协议信号,即JTAG调试信号。
步骤S103,发送调试信号至处理器。远程调试转换单元将调试命令转换成JTAG调试信号后,将JTAG调试信号由基板管理控制器中的基板控制驱动单元通过联合测试工作组总线(JTAG总线)发送给远程服务器。远程服务器的主板上设置有不同的测试/调试接口,例如测试设计接口(DFT:Design For Test)以及调试访问端口(DAP:Debug Access Port)。JTAG调试信号经由JTAG总线发送到测试设计接口和/或调试访问端口,JTAG调试信号再通过测试设计接口和/或调试访问端口发送至处理器。在调试过程中,可以自由切换对测试设计接口以及调试访问端口的调用,以实现对处理器的操作。
步骤S104,对处理器进行调试并返回调试结果。在将JTAG调试信号发送给处理器之后,可以将基板管理控制器设置为主设备,通过JTAG总线访问远程服务器中处理器的内部数据、寄存器等,使得处理器执行相关的指令,根据JTAG调试信号对处理器进行调试。本发明所称的调试,可以是排错(Debug)、追踪(Trace)以及扫描转存操作(Scandump)等。
步骤S105,发送调试结果。调试完成后,将对处理器的调试结果同样通过JTAG总线发送至基板控制驱动单元。同样的,此时返回的调试结果也是JTAG格式的。将JTAG格式的调试结果发送至基板控制驱动单元中所对应的输入输出控制函数,将JTAG格式的调试结果转换成JTAG信号,并将调试结果所对应的JTAG信号发送至远程调试转换单元。
步骤S106,转换调试结果并返回客户端调试设备。远程调试转换单元在接收到调试结果对应的JTAG信号之后,将其封装成标准格式的远程调试函数的返回值,并将返回值通过socket发送给所述客户端调试设备。
以上步骤S101-S106为一个调试流程的步骤,对于调试过程来说,可以执行一次或多次上述的一个或多个步骤,本发明并不以此为限。
以上以处理器作为示例,介绍了远程调试的方法,本发明的远程调试方法,也可以应用于其他设备或芯片的调试。
图3是本发明一实施例处理器远程调试系统的结构示意图。如图3所示,本发明的处理器远程调试系统200包括客户端调试设备201、基板管理控制器202、远程调试转换单元203、基板控制驱动单元204以及联合测试工作组总线205。本实施例中,远程调试转换单元203集成于基板管理控制器202中。远程调试系统200用于远程调试远程服务器300中的处理器301。
具体的,客户端调试设备201与远程调试转换单元203之间绑定socket,以实现客户端调试设备201与远程服务器300之间的通信,即通过socket,客户端调试设备201与远程调试转换单元203之间实现通信,从而实现传送调试命令以及返回调试结果。
于本发明中,客户端调试设备201中运行的调试软件有多种,可以是通用的处理器调试软件,例如Trace32 PowerView/GDB/RegModel/Telnet/Jupyter等,本发明并不以此为限。每一种调试软件所采用的数据格式并不完全相同,指令的格式也不同,本发明将指令信息以及调试信息封装成标准格式的调试命令,标准格式例如可以是JSON格式,也可以是其他格式,本发明并不以此为限。
在处理器的复杂调试过程中,通常需要处理器执行相关的操作,才可以准确的找到处理器的故障内容,并清除故障。启动本发明的客户端调试设备201后,运行调试软件,在调试软件的参数设置界面中不仅需要配置需要调试的相关调试参数,还配置有在调试过程中处理器所需要执行的指令的相关指令信息,客户端调试设备201将调试参数以及指令信息进行封装,将其封装成标准格式的调试命令。在完成调试命令的封装之后,通过socket向远程调试转换单元203发送调试命令。
在远程调试转换单元203接收到从客户端调试设备201通过socket发送的调试命令后,远程调试转换单元203利用其中的远程调试函数对接收到的调试命令进行解析,将JSON格式的调试命令解析出指令信息(指令ID)以及调试信息(时钟、频率等),并将调试命令转换成调试信号。远程调试函数可以是例如connnect/disconnect/get capabilities/set frequency/get frequency/shiftbit等函数,用于将调试命令转换成JTAG调试信号。
解析完成之后,远程调试转换单元203调用基板管理控制器202(BMC)中基板控制驱动单元204所提供的对应的输入输出控制函数(IOCTL Input/Output Control),将调试命令转换成JTAG(Joint Test Action Group)格式的协议信号,即JTAG调试信号。
远程调试转换单元203将调试命令转换成JTAG调试信号后,将JTAG调试信号由基板管理控制器202中的基板控制驱动单元204通过联合测试工作组总线205(JTAG总线)发送给远程服务器300。远程服务器300的主板上设置有多个处理器301以及不同的测试/调试接口,例如测试设计接口206(DFT:Design For Test)以及调试访问端口207(DAP:DebugAccess Port)。JTAG调试信号经由JTAG总线205发送到测试设计接口206和/或调试访问端口207,JTAG调试信号再通过测试设计接口206和/或调试访问端口207发送至处理器301。在调试过程中,JTAG调试信号可以自由切换对测试设计接口206以及调试访问端口207的调用,以实现对处理器301的操作。
在将JTAG调试信号发送给处理器301之后,可以将基板管理控制器202设置为主设备,通过JTAG总线205访问远程服务器300中处理器301的内部数据、寄存器等,使得处理器301执行相关的指令,根据JTAG调试信号对处理器301进行调试。本发明所称的调试,可以是排错(Debug)、追踪(Trace)以及扫描转存操作(Scandump)等。
对处理器301调试完成后,将对处理器301的调试结果同样通过JTAG总线205发送至基板控制驱动单元204。同样的,此时返回的调试结果也是JTAG格式的。将JTAG格式的调试结果发送至基板控制驱动单元204中所对应的输入输出控制函数,将JTAG格式的调试结果转换成JTAG信号,并将调试结果所对应的JTAG信号发送至远程调试转换单元203。
远程调试转换单元203在接收到调试结果对应的JTAG信号之后,将其封装成标准格式的远程调试函数的返回值,并将返回值通过socket发送给客户端调试设备201。
客户端调试设备201中可以通过显示设备(图中未示出)显示最终的调试结果,以确定是不是需要进一步调试,或者调整调试命令。
图4是本发明另一实施例处理器远程调试系统的结构示意图。如图4所示,与图3所示实施例不同的是,图4所示实施例中的远程调试转换单元203分立设置于基板管理控制器202之外,可通过可编程逻辑器件(Programmable Logic Device,PLD)实现。
本发明还提供一种存储介质,用于存储计算机程序,计算机程序用于执行如上所述的任意一种调试方法。
综上,依照本发明的实施例,调试命令中不仅包含简单调试所需要的调试参数,还包括复杂调试中所需要的处理器所要执行指令的指令信息,以使得在调试过程中处理器可以执行相关的调试指令,并且将不同调试软件的调试命令封装成统一的标准格式的调试指令,能够应用于多种不同的调试软件,且不需要额外的物理调试设备,完全摆脱对物理调试器的依赖,实现真正远程调试,提高调试效率。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (14)
1.一种处理器远程调试方法,所述处理器设置于远程服务器中,其特征在于,包括以下步骤:
配置客户端调试设备,所述客户端调试设备向所述处理器发送标准格式的调试命令;
解析所述调试命令,调用与所述调试命令相对应的函数,将所述调试命令转换成调试信号;
发送所述调试信号至所述处理器;
根据所述调试信号对所述处理器进行调试并返回调试结果;
发送所述调试结果至相对应的所述函数;
转换所述调试结果,将所述调试结果转换成所述标准格式的所述函数的返回值,并将所述返回值发送给所述客户端调试设备;其中
所述调试信号包括所述处理器在调试过程中所执行指令的指令信息及调试参数信息。
2.如权利要求1所述的调试方法,其特征在于,所述对所述处理器进行调试的步骤包括对所述处理器进行排错、追踪和/或扫描转存操作。
3.如权利要求1所述的调试方法,其特征在于,所述配置客户端调试设备的步骤进一步包括:
绑定socket,以实现所述客户端调试设备与所述远程服务器之间的通信。
4.如权利要求1所述的调试方法,其特征在于,所述函数包括输入输出控制函数。
5.如权利要求1所述的调试方法,其特征在于,发送所述调试信号至所述处理器的步骤包括通过联合测试工作组总线将所述调试信号发送给所述处理器。
6.如权利要求5所述的调试方法,其特征在于,所述联合测试工作组总线与设置于所述远程服务器中的测试设计接口以及调试访问端口电性连接,所述调试信号通过所述测试设计接口以及所述调试访问端口发送给所述处理器。
7.一种处理器远程调试系统,所述处理器设置于远程服务器中,其特征在于,包括:
一客户端调试设备,用于向所述处理器发送标准格式的调试命令;
一远程调试转换单元,用于解析所述调试命令,调用与所述调试命令相对应的函数,将所述调试命令转换成调试信号;
一基板管理控制器,用于接收所述调试信号并将所述调试信号发送至所述处理器,对所述处理器进行调试,并将调试结果返回给所述远程调试转换单元;
所述远程调试转换单元还用于将所述调试结果转换成所述标准格式的所述函数的返回值,并将所述返回值发送给所述客户端调试设备;其中
所述调试信号包括所述处理器在调试过程中所执行指令的指令信息及调试参数信息。
8.如权利要求7所述的调试系统,其特征在于,所述对所述处理器进行调试包括对所述处理器进行排错、追踪和/或扫描转存操作。
9.如权利要求7所述的调试系统,其特征在于,所述客户端调试设备与所述远程调试转换单元之间通过绑定socket实现通信。
10.如权利要求7所述的调试系统,其特征在于,所述远程调试转换单元设置于所述基板管理控制器中或与所述基板管理控制器分立设置。
11.如权利要求7所述的调试系统,其特征在于,所述函数包括输入输出控制函数。
12.如权利要求7所述的调试系统,其特征在于,所述基板管理控制器进一步包括基板控制驱动单元,所述基板控制驱动单元用于将所述调试信号发送给所述处理器。
13.如权利要求12所述的调试系统,其特征在于,所述调试系统进一步包括联合测试工作组总线,所述联合测试工作组总线与设置于所述远程服务器中的测试设计接口以及调试访问端口电性连接,所述调试信号通过所述测试设计接口以及所述调试访问端口发送给所述处理器。
14.一种存储介质,用于存储计算机程序,其特征在于:
所述计算机程序用于执行如权利要求1-6所述的任意一种调试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211207205.8A CN115981928A (zh) | 2022-09-29 | 2022-09-29 | 处理器远程调试方法、系统以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211207205.8A CN115981928A (zh) | 2022-09-29 | 2022-09-29 | 处理器远程调试方法、系统以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115981928A true CN115981928A (zh) | 2023-04-18 |
Family
ID=85968762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211207205.8A Pending CN115981928A (zh) | 2022-09-29 | 2022-09-29 | 处理器远程调试方法、系统以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115981928A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737513A (zh) * | 2023-08-14 | 2023-09-12 | 北京精琢科技有限公司 | 一种计算机硬件信息获取方法、系统及计算机设备 |
-
2022
- 2022-09-29 CN CN202211207205.8A patent/CN115981928A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116737513A (zh) * | 2023-08-14 | 2023-09-12 | 北京精琢科技有限公司 | 一种计算机硬件信息获取方法、系统及计算机设备 |
CN116737513B (zh) * | 2023-08-14 | 2024-03-08 | 北京精琢科技有限公司 | 一种计算机硬件信息获取方法、系统及计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704346B (zh) | Soc芯片调试方法及调试系统 | |
CN113312879B (zh) | 芯片电路功能验证系统、方法、设备及存储介质 | |
JPH05506119A (ja) | 回路内エミュレータ | |
CN113342583B (zh) | 芯片验证系统、方法、装置、设备和存储介质 | |
JPH10253719A (ja) | Tapコントローラを有する集積回路 | |
CN103412817B (zh) | 自动化测试脚本脱机调试方法及系统 | |
CN115981928A (zh) | 处理器远程调试方法、系统以及存储介质 | |
WO2008003764A2 (en) | A method and a system for software testing | |
CN103731663A (zh) | 一种智能电视的测试方法和装置 | |
CN116610590A (zh) | 基于zynq平台实现多片fpga远程调试方法及系统 | |
CN110457743B (zh) | 一种基于fpga的芯片检测方法 | |
CN115242681A (zh) | 一种芯片内通信模块的测试系统、方法、设备及存储介质 | |
TWI774391B (zh) | 實時配置韌體數據的方法與除錯裝置 | |
CN115454881B (zh) | Risc-v架构的调试系统及调试方法 | |
CN110753363A (zh) | 一种智能设备无线调试系统和方法 | |
CN115598486A (zh) | 一种连接测试机与硬件资源的测试系统和方法 | |
CN113608935B (zh) | 一种测试网卡的方法、系统、设备及介质 | |
US20230229583A1 (en) | Microchip with on-chip debug and trace engine | |
CN113535490B (zh) | 侦错装置及其操作方法 | |
US20230215226A1 (en) | Method for vehicle diagnostics, diagnostic connector, and diagnostic device | |
US7673121B2 (en) | Circuit for monitoring a microprocessor and analysis tool and inputs/outputs thereof | |
CN114579384A (zh) | 一种基于Web的芯片测试及调试系统 | |
CN116795686A (zh) | 一种mcu远程调试方法及系统 | |
CN117494629A (zh) | 一种外设的验证方法、外设验证时的参数配置方法及装置 | |
CN116302753A (zh) | 模块验证方法、装置、接口代理模块、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |