板卡设备调试方法及装置与流程

文档序号:26748818发布日期:2021-09-25 01:46阅读:333来源:国知局
板卡设备调试方法及装置与流程

1.本发明涉及设备调试技术领域,尤其涉及一种板卡设备调试方法及装置。


背景技术:

2.嵌入式多板卡系统被广泛应用于轨道交通和工业控制等领域,这些领域对设备的稳定性要求较高。对于多板卡设备中软件程序的可调可测,尤其需要重视。
3.在大型程序中,开发者往往会在开发板卡设备的功能的同时,为板卡设备设计相应的调试方法,以保证板卡设备的可调可测性。为了方便调测,往往会在板卡设备的开发代码中增加调试日志,导致代码开销增加。并且,调试日志的度很难掌控,调试日志设置的太多导致调试过程复杂,会影响业务进程的执行效率,设置太少,难以达到调试的目的。
4.综上,现有技术在板卡设备的开发代码中增加调试日志,不仅增加代码的开销,且因调试日志的数量难以确定,导致执行效率低或难以达到调试目的。


技术实现要素:

5.本发明提供一种板卡设备调试方法及装置,用以解决现有技术中在板卡设备的开发代码中增加调试日志,不仅增加代码的开销,且因调试日志的数量难以确定,导致执行效率低或难以达到调试目的缺陷,实现降低代码的开销,简单快捷地对板卡进行调试。
6.本发明提供一种板卡设备调试方法,包括:
7.第一板卡的服务端接收客户端发送的调试命令消息;
8.根据所述调试命令消息中的板卡号和业务进程名称,将所述调试命令消息发送至所述板卡号对应的第二板卡中所述业务进程名称对应的业务进程,以供所述业务进程根据所述调试命令消息中的符号在所述业务进程中的符号地址,执行所述符号中的函数、读写所述符号中的变量和所述变量的内存地址中的一种或多种。
9.根据本发明提供的一种板卡设备调试方法,所述将所述调试命令消息发送至所述板卡号对应的第二板卡中所述业务进程名称对应的业务进程,包括:
10.在所述第一板卡为所述第二板卡的情况下,直接将所述调试命令消息发送至所述业务进程;
11.在所述第一板卡不为所述第二板卡的情况下,将所述调试命令消息发送至所述第二板卡的服务端,通过所述第二板卡的服务端将所述调试命令消息发送至所述业务进程。
12.根据本发明提供的一种板卡设备调试方法,在所述将所述调试命令消息发送至所述板卡号对应的第二板卡中所述业务进程名称对应的业务进程之后,包括:
13.在所述第一板卡为所述第二板卡的情况下,直接接收所述业务进程返回的执行结果、读写所述变量的第一读写结果和读写所述内存地址的第二读写结果中的一种或多种,并将所述执行结果、第一读写结果和第二读写结果中的一种或多种发送至所述客户端;
14.在所述第一板卡不为所述第二板卡的情况下,通过所述第二板卡的服务端接收所述业务进程返回的所述执行结果、第一读写结果和第二读写结果中的一种或多种,并将所
述执行结果、第一读写结果和第二读写结果中的一种或多种发送至所述客户端。
15.根据本发明提供的一种板卡设备调试方法,在第一板卡的服务端接收客户端发送的调试命令消息之前,还包括:
16.向所述第二板卡中处于运行状态的业务进程发送注册信息请求消息,接收所述处于运行状态的业务进程返回的注册信息请求消息的注册信息;
17.将所述注册信息发送至所述客户端,以供所述客户端根据所述注册信息对所述调试命令消息进行校验和补全,以及为编写所述调试命令消息提供提示信息中的一种或多种。
18.根据本发明提供的一种板卡设备调试方法,向所述第二板卡中处于运行状态的业务进程发送注册信息请求消息,接收所述处于运行状态的业务进程返回的注册信息请求消息的注册信息,包括:
19.在所述第一板卡为所述第二板卡的情况下,向所述处于运行状态的业务进程发送注册信息请求消息,并直接接收所述处于运行状态的业务进程返回的注册信息请求消息的注册信息;
20.在所述第一板卡不为所述第二板卡的情况下,向所述第二板卡的服务端发送所述注册信息请求消息,并通过所述第二板卡的服务端接收所述处于运行状态的业务进程返回的所述注册信息请求消息的注册信息。
21.根据本发明提供的一种板卡设备调试方法,所述注册信息包括板卡号、所述处于运行状态的业务进程的进程编号、描述和支持的符号列表;
22.其中,所述符号列表包括函数和全局变量。
23.根据本发明提供的一种板卡设备调试方法,在所述将所述注册信息发送至所述客户端之后,还包括:
24.在所述处于运行状态的业务进程由运行状态切换为退出状态的情况下,向所述客户端发送删除所述注册信息的消息,以供所述客户端删除所述注册信息。
25.根据本发明提供的一种板卡设备调试方法,所述客户端的配置文件中的服务端的ip地址与所述第一板卡的服务端的ip地址一致,且所述配置文件中的服务端的端口号与所述第一板卡的服务端的端口号一致。
26.本发明还提供一种板卡设备调试装置,包括:
27.接收模块,用于第一板卡的服务端接收客户端发送的调试命令消息;
28.发送模块,用于根据所述调试命令消息中的板卡号和业务进程名称,将所述调试命令消息发送至所述板卡号对应的第二板卡中所述业务进程名称对应的业务进程,以供所述业务进程根据所述调试命令消息中的符号在所述业务进程中的符号地址,执行所述符号中的函数、读写所述符号中的变量和所述变量的内存地址中的一种或多种。
29.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述板卡设备调试方法的步骤。
30.本发明提供的板卡设备调试方法及装置,直接通过客户端接收调试命令,并直接将调试命令消息下发至需要调试的第二板卡中的目标业务进程中,并且业务进程在接收到调试命令消息后,可以直接执行调试命令消息中的函数,使得用户只需要在客户端输入调
试命令,即可实现对第二板卡的调试,不仅调测方便,操作简单,还可以有效减少因在需要调试的板卡的开发代码中增加调试日志带来的代码开销。
附图说明
31.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
32.图1是本发明提供的板卡设备调试方法的流程示意图;
33.图2是本发明提供的板卡设备调试方法中客户端发送调试命令消息和接收调试结果的结构示意图;
34.图3是本发明提供的板卡设备调试方法中客户端与调试服务端通信的结构示意图;
35.图4是本发明提供的板卡设备调试方法中客户端发送注册信息请求消息和接收注册信息的结构示意图;
36.图5是本发明提供的板卡设备调试装置的结构示意图;
37.图6是本发明提供的电子设备的结构示意图。
具体实施方式
38.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
39.下面结合图1描述本发明的板卡设备调试方法,包括:步骤101,第一板卡的服务端接收客户端发送的调试命令消息;
40.其中,客户端运行在板卡设备外部的调测机器中,负责与用户进行交互。
41.第一板卡的类型可以为嵌入式板卡,本实施例不对此做具体地限定。
42.第一板卡和客户端的数量可以为多个,本实施例不对此作具体地限定。
43.每个客户端与相应的第一板卡的服务端相连。
44.在客户端的数量为多个时,可以支持多个用户同时在多个客户端输入多个调试命令,任一客户端均可将用户输入的调试命令发送至与该客户端连接的第一板卡的服务端。每个第一板卡的服务端接收客户端发送的调试命令消息的方式一致。
45.以下针对一个第一板卡的服务端和一个客户端对服务端接收客户端发送的调试命令消息的方法进行描述。
46.可选地,客户端设置有多个板卡的不同进程的分级菜单,可以细细化到每个板卡的每个进程。其中,多个板卡中包括第一板卡和除第一板卡外的其他板卡。
47.可选地,用户需要对待调试板卡进行调试时,只需要在客户端进入到待调试板卡的目标业务进程的菜单,在菜单内输入调试命令即可。
48.然后,由客户端对调试命令进行解析后将其转换为调试命令消息,并发送至第一
板卡的服务端,以对调试命令消息中的板卡号对应的板卡进行调试。
49.本实施例中客户端的菜单可以细化到每个板卡的每个进程,对于板卡进行调试时,直接输入调试命令即可,减少额外增加调试代码带来的开销。
50.步骤102,根据所述调试命令消息中的板卡号和业务进程名称,将所述调试命令消息发送至所述板卡号对应的第二板卡中所述业务进程名称对应的业务进程,以供所述业务进程根据所述调试命令消息中的符号在所述业务进程中的符号地址,执行所述符号中的函数、读写所述符号中的变量和所述变量的内存地址中的一种或多种。
51.其中,第二板卡为需要进行调试的板卡,即待调试板卡,可以是第一板卡,也可以是与第一板卡连接的其他板卡,本实施例不对此作具体地限定。
52.调试命令消息中携带有板卡号和板卡号对应的板卡的业务进程名称,以及符号。
53.其中,符号包括函数和变量等,本实施例不对此作具体限定。
54.可选地,第一板卡的服务端在接收到调试命令消息后,根据板卡号和业务进程名称查找到板卡号对应的第二板卡和业务进程名称对应的第二板卡中的业务进程。本实施例将业务进程名称对应的业务进程作为目标业务进程。
55.然后,将调试命令消息发送至第二板卡的目标业务进程。
56.目标业务进程的内置任务在接收到调试命令消息后,使用dlsym指令获取调试命令消息中的符号在业务进程中的符号地址,使用符号地址执行符号中的函数、在业务进程中读写符号中的变量和读写变量的内存地址中的一种或多种,本实施例不对此作具体限定。
57.其中,执行函数的方式可以对函数进行逻辑操作等,本实施例不对此作具体地限定。
58.相较于现有技术中在需要调试的板卡内部的开发代码中增加调试日志,本实施例通过客户端直接将调试命令消息下发至需要调试的第二板卡的目标进程中,第二板卡的目标进程在接收到调试命令消息后,可以直接执行调试命令消息,使得用户只需要在客户端输入调试命令,即可实现对需要调试的板卡进行调试,不仅调测方便、操作简单,并且可以有效减少因在需要调试的板卡的开发代码中增加调试日志带来的代码开销。另外,也可以减少因调试日志数量过多带来的执行效率低,以及调试日志数量过少带来的调试效果难以达到目的的问题。
59.在板卡开发时期,对板卡进行代码单元测试和集成测试是必不可少。在成熟的项目开发过程中,开发者一定会编写单元测试和集成测试用例,这又会增加代码的开销。而本实施例中程序员可以直接用此调试平台来做单元测试或者集成测试,有效减少额外编写测试用例代码的开销。
60.本实施例直接通过客户端接收调试命令,并直接将调试命令消息下发至需要调试的第二板卡中的目标业务进程中,并且业务进程在接收到调试命令消息后,可以直接执行调试命令消息中的函数、读写所述符号中的变量和变量的内存地址中的一种或多种,使得用户只需要在客户端输入调试命令,即可实现对第二板卡的调试,不仅调测方便,操作简单,还可以有效减少因在需要调试的板卡的开发代码中增加调试日志带来的代码开销。
61.在上述实施例的基础上,本实施中所述将所述调试命令消息发送至所述板卡号对应的第二板卡中所述业务进程名称对应的业务进程,包括:在所述第一板卡为所述第二板
卡的情况下,直接将所述调试命令消息发送至所述业务进程;在所述第一板卡不为所述第二板卡的情况下,将所述调试命令消息发送至所述第二板卡的服务端,通过所述第二板卡的服务端将所述调试命令消息发送至所述业务进程。
62.可选地,第一板卡的板卡号可能与调试命令消息中板卡号相同,也可能不同。
63.当第一板卡的板卡号与调试命令消息中板卡号相同时,第一板卡为第二板卡,第二板卡的业务进程即为第一板卡的业务进程。此时,第一板卡的服务端可以直接将调试命令消息发送至所述业务进程。
64.当第一板卡的板卡号与调试命令消息中板卡号相同时,第一板卡不为第二板卡,第二板卡的业务进程也不为第一板卡内部的业务进程。
65.此时,第一板卡的服务端需要通过与第二板卡的服务端连接的通道将调试命令消息转发至第二板卡的服务端,然后第二板卡的服务端再将调试命令消息转发至第二板卡的业务进程。
66.本实施例中可以直接在客户端对第一板卡以及与第一板卡连接的其他板卡下发调试命令消息,并将调试命令消息发送至第一板卡以及与第一板卡连接的其他板卡的业务进程,以供第一板卡以及与第一板卡连接的其他板卡的业务进程对函数进行操作、读写变量和变量的内存地址中的一种或多种,实现跨板卡跨进程执行函数、读写变量和变量的内存地址中的一种或多种,以简化调试工作;并且调试人员只需要在客户端下发调试指令即可对第一板卡以及与第一板卡连接的其他板卡进行调试,有效提高调试效率。
67.另外,这种板卡调试方法通用性强,与硬件驱动无关,不受限于硬件设备,可以对第一板卡以及与第一板卡连接的任意板卡进行调试,可以广泛应用于嵌入式多板卡设备。并且,这种调试方法,只要一次性部署客户端和多个板卡设备完毕,后期没有额外的硬件开销,维护成本低。
68.在上述实施例的基础上,本实施中在所述将所述调试命令消息发送至所述板卡号对应的第二板卡中所述业务进程名称对应的业务进程之后,包括:在所述第一板卡为所述第二板卡的情况下,直接接收所述业务进程返回的执行结果、读写所述变量的第一读写结果和读写所述内存地址的第二读写结果中的一种或多种,并将所述执行结果、第一读写结果和第二读写结果中的一种或多种发送至所述客户端;在所述第一板卡不为所述第二板卡的情况下,通过所述第二板卡的服务端接收所述业务进程返回的所述执行结果、第一读写结果和第二读写结果中的一种或多种,并将所述执行结果、第一读写结果和第二读写结果中的一种或多种发送至所述客户端。
69.可选地,在业务进程完成执行函数、读写变量和读写变量的内存地址中的一种或多种后,可以将执行结果、读写变量的第一读写结果和读写内存地址的第二读写结果中的一种或多种返回至第一板卡的服务端。然后,由第一板卡的服务端返回至客户端,以供客户端根据执行结果、第一读写结果和第二读写结果中的一种或多种获取调试结果,并显示给用户。
70.综上,用户通过客户端下发调试指令,即可完成执行板卡设备的业务进程中的函数、读写变量和变量的内存地址中的一种或多种的过程。
71.如图2所示,在第一板卡为第二板卡时,第二板卡的业务进程即为第一板卡的业务进程。业务进程可以直接将执行结果、第一读写结果和第二读写结果中的一种或多种返回
至第一板卡的服务端,第一板卡的服务端可以直接接收业务进程返回的执行结果、第一读写结果和第二读写结果中的一种或多种。
72.在第一板卡不为第二板卡时,第二板卡的业务进程不在第一板卡内。在此种情况下,业务进程需要先将执行结果、第一读写结果和第二读写结果中的一种或多种发送至第二板卡的服务端,由第二板卡的服务端再将执行结果、第一读写结果和第二读写结果中的一种或多种转发至第一板卡的服务端。
73.本实施例通过客户端下发调试指令,直接执行板卡设备的业务进程中的函数,进而进行打桩测试或者功能调测,也可以直接读写业务进程的变量的内存地址,开发者无需增加额外调试代码或者开发调试工具,有效减少代码开销,降低测试及调试的难度。
74.在上述各实施例的基础上,本实施中在第一板卡的服务端接收客户端发送的调试命令消息之前,还包括:向所述第二板卡中处于运行状态的业务进程发送注册信息请求消息,接收所述处于运行状态的业务进程返回的注册信息请求消息的注册信息;将所述注册信息发送至所述客户端,以供所述客户端根据所述注册信息对所述调试命令消息进行校验和补全,以及为编写所述调试命令消息提供提示信息中的一种或多种。
75.可选地,在对第二板卡进行调试之前,需要将第二板卡中处于运行状态的业务进程的注册信息发送至客户端。
76.然后,客户端可以将第二板卡的注册信息显示出来,以对用户编写第二板卡的调试命令提供参考;并且还可以根据注册信息对用户输入的调试命令进行校验,以确保用户输入正确的调试命令;还可以根据注册信息为用户输入的调试命令提供补全功能。
77.可选地,第一板卡的服务端在接收到客户端发送的第二板卡的注册信息请求消息时,将注册信息请求消息发送至第二板卡中处于运行状态的业务进程。
78.然后,处于运行状态的业务进程通过其内置任务将预先读取的符号列表文件中的符号列表、处于运行状态的业务进程的编号和描述,以及处于运行状态的业务进程所在板卡的板卡号等生成注册信息。并将注册信息返回至第一板卡的服务端。
79.第一板卡的服务端接收到第二板卡的注册信息后,将第二板卡的注册信息发送至客户端。
80.其中,符号列表文件是开发人员预先通过nm命令在业务进程中查询获取的业务进程的符号列表,并将其写入文件后形成。
81.可选地,在业务进程运行时,内置任务可以从业务进程中预先读取符号列表文件中的符号列表;在接收到注册信息请求消息时,将符号列表转化为注册消息。
82.如图3所示,除第二板卡以外的其他板卡也与第一板卡连接直接或间接。并且其他板卡可以通过与第一板卡的服务端的服务端连接的通路进行消息传递。
83.同理,除第二板卡以外的与第一板卡连接的所有其他板卡也可以通过与第一板卡的服务端的服务端将其注册信息发送至第一板卡的服务端和客户端。
84.本实施例向客户端发送板卡的注册信息,以对用户输入调试命令提供参考,并且对调试命令进行校验和补全,以降低调试的难度,并保证用户输入的调试命令的有效性。并且,还可以降低用户对程序代码的熟悉程度的要求,用户只需要根据相应的注册信息提示,即可输入相应的调试指令。
85.在上述实施例的基础上,本实施例中向所述第二板卡中处于运行状态的业务进程
发送注册信息请求消息,接收所述处于运行状态的业务进程返回的注册信息请求消息的注册信息,包括:在所述第一板卡为所述第二板卡的情况下,向所述处于运行状态的业务进程发送注册信息请求消息,并直接接收所述处于运行状态的业务进程返回的注册信息请求消息的注册信息;在所述第一板卡不为所述第二板卡的情况下,向所述第二板卡的服务端发送所述注册信息请求消息,并通过所述第二板卡的服务端接收所述处于运行状态的业务进程返回的所述注册信息请求消息的注册信息。
86.可选地,第二板卡可以是第一板卡,也可以是除第一板卡外的其他板卡。
87.在第一板卡为第二板卡的情况下,第二板卡中处于运行状态的业务进程即为第一板卡的处于运行状态的业务进程。此时,第一板卡的服务端可以直接将注册信息请求消息发送至所述处于运行状态的业务进程,并且直接接收所述处于运行状态的业务进程返回的注册信息。
88.如图4所示,在第一板卡不为第二板卡的情况下,第二板卡中处于运行状态的业务进程不是第一板卡中处于运行状态的业务进程。此时,第一板卡的服务端需要先将注册信息请求消息发送至第二板卡的服务端,由第二板卡的服务端将注册信息请求消息转发至所述处于运行状态的业务进程。
89.所述处于运行状态的业务进程接收到注册信息请求消息后,生成注册消息,并将注册消息发送至第二板卡的服务端,然后,第二板卡的服务端再将注册信息转发至第一板卡的服务端。
90.可选地,对于与第一板卡直接或间接连接的其他板卡也可以按照这种方式将其注册消息发送至第一板卡的服务端,进而实现多板卡之间的注册信息共享。
91.此外,对于多板卡设备,也可以将多板卡设备中的所有板卡注册信息保存在每个板卡的服务端中,以便客户端连接任意一个板卡的服务端,向其发送注册信息请求消息,即可获取多板卡设备中所有处于运行状态的业务进程的注册信息。
92.可选地,对于多板卡设备,每块板卡启动之后,各板卡的服务端两两之间建立连接,可以通过连接的服务端向其他板卡的服务端发送注册信息请求消息。其他板卡收到注册信息请求消息后,会向其发送注册信息。待多板卡设备中所有板卡启动完毕,各板卡上的服务端已经保存有多板卡中所有处于运行状态的业务进程的注册信息。
93.本实施例中通过连接的服务端可以是多板卡之间的注册信息共享,以便用户可以通过第一板卡的服务端即可获取所有与第一板卡的服务端连接的第二板卡的注册信息。
94.在上述实施例的基础上,本实施例中所述注册信息包括板卡号、所述处于运行状态的业务进程的进程编号、描述和支持的符号列表;其中,所述符号列表包括函数和全局变量。
95.其中,进程描述可以是对业务进程的状态进行描述的符号或对业务进程的设置进行描述的符号,本实施例不对此做具体地限定。
96.其中,符号列表包括处于运行状态的业务进程支持的可调试的函数,如业务进程代码中的函数或者libc数据库中的常用函数,全局变量,本实施例不对此做具体地限定。
97.在上述实施例的基础上,本实施例中在所述将所述注册信息发送至所述客户端之后,还包括:在监测到所述处于运行状态的业务进程由运行状态切换为退出状态的情况下,向所述客户端发送删除所述注册信息的消息,以供所述客户端删除所述注册信息。
98.可选地,每个板卡的服务端设置有监测任务,用于监控每个板卡的业务进程的状态。
99.在第一板卡不为第二板卡的情况下,采用第二板卡的服务端监测第二板卡的业务进程,在监控到第二板卡中处于运行状态的业务进程由运行状态切换为退出状态时,向第二板卡的服务端发送删除该业务进程注册信息的消息,第二板卡的服务端将保存的该业务进程注册信息删除,并将删除该业务进程的注册信息的消息通过第一板卡的服务端转发至客户端,以供客户端删除该业务进程的注册信息。
100.另外,在第二板卡的服务端监测到第二板卡中处于退出状态的业务进程由退出状态切换为运行状态时,发送注册信息请求消息给该业务进程。然后,该业务进程的内置任务生成注册信息,并将注册信息发送至第二板卡的服务端。第二板卡的服务端接收该业务进程的注册消息,并将注册消息通过第一板卡的服务端发送至客户端。
101.在第一板卡为第二板卡的情况下,直接监测各业务进程的状态,在监测到处于运行状态的业务进程由运行状态切换为退出状态时,直接删除保存的该业务进程的注册信息,并直接向客户端发送删除该业务进程的注册信息的消息。
102.对于其他板卡,也可以按照上述方式更新其服务端保存的注册信息。
103.本实施例中,各板卡的服务端可以根据业务进程的状态实时更新服务端内保存的注册信息,也可以通知其他板卡同步更新其他板卡内保存的该板卡的注册信息。
104.各板卡的服务端的注册信息可以实时反映多板卡的业务进程的状态,并且还可以实时对客户端的注册信息进行更新,以使各板卡和客户端的注册信息同步。
105.在上述各实施例的基础上,本实施例中所述客户端的配置文件中的服务端的ip地址与所述第一板卡的服务端的ip地址一致,且所述配置文件中的服务端的端口号与所述第一板卡的服务端的端口号一致。
106.可选地,客户端可以与任意板卡连接,只需要在客户端的配置文件中设置相应的服务端的ip(internet protocol,网际互连协议)地址和端口号即可。客户端与配置文件中的ip地址和端口号对应的第一板卡的服务端连接,并可以通过第一板卡的服务端对所有与第一板卡的服务端连接的其他板卡进行调试管理,可以向多个板卡下发调试命令消息。
107.当客户端连接的第一板卡宕机时,只需修改客户端的配置文件中ip地址和端口号,即可连接其他板卡来管理多个板卡,操作简单。
108.综上所述,本实施例中的客户端、各板卡的服务端和业务进程的内置任务部署完之后,用户只需在客户端下发调试指令,即可执行业务进程的内部函数或者访问业务进程的内存地址。
109.并且多个板卡共享各业务进程的注册信息,通过一个客户端即可调测多个板卡,并且本调试方式通用性良好,不局限于具体硬件,对于嵌入式多板卡设备均可部署,可广泛地应用于移动通信领域。
110.下面对本发明提供的板卡设备调试装置进行描述,下文描述的板卡设备调试装置与上文描述的板卡设备调试方法可相互对应参照。
111.如图5所示,为本实施例中的板卡设备调试装置,该装置包括接收模块501和发送模块502,其中:
112.接收模块501用于第一板卡的服务端接收客户端发送的调试命令消息;
113.其中,客户端运行在板卡设备外部的调测机器中,负责与用户进行交互。
114.第一板卡的类型可以为嵌入式板卡,本实施例不对此做具体地限定。
115.第一板卡和客户端的数量可以为多个,本实施例不对此作具体地限定。
116.每个客户端与相应的第一板卡的服务端相连。
117.在客户端的数量为多个时,可以支持多个用户同时在多个客户端输入多个调试命令,任一客户端均可将用户输入的调试命令发送至与该客户端连接的第一板卡的服务端。每个第一板卡的服务端接收客户端发送的调试命令消息的方式一致。
118.以下针对一个第一板卡的服务端和一个客户端对服务端接收客户端发送的调试命令消息的方法进行描述。
119.可选地,客户端设置有多个板卡的不同进程的分级菜单,可以细细化到每个板卡的每个进程。其中,多个板卡中包括第一板卡和除第一板卡外的其他板卡。
120.可选地,用户需要对待调试板卡进行调试时,只需要在客户端进入到待调试板卡的目标业务进程的菜单,在菜单内输入调试命令即可。
121.然后,由客户端对调试命令进行解析后将其转换为调试命令消息,并发送至第一板卡的服务端,以对调试命令消息中的板卡号对应的板卡进行调试。
122.本实施例中客户端的菜单可以细化到每个板卡的每个进程,对于板卡进行调试时,直接输入调试命令即可,减少额外增加调试代码带来的开销。
123.发送模块502用于根据所述调试命令消息中的板卡号和业务进程名称,将所述调试命令消息发送至所述板卡号对应的第二板卡中所述业务进程名称对应的业务进程,以供所述业务进程根据所述调试命令消息中的符号在所述业务进程中的符号地址,执行所述符号中的函数、读写所述符号中的变量和所述变量的内存地址中的一种或多种。
124.其中,第二板卡为需要进行调试的板卡,即待调试板卡,可以是第一板卡,也可以是与第一板卡连接的其他板卡,本实施例不对此作具体地限定。
125.调试命令消息中携带有板卡号和板卡号对应的板卡的业务进程名称,以及函数。
126.可选地,第一板卡的服务端在接收到调试命令消息后,根据板卡号和业务进程名称查找到板卡号对应的第二板卡和业务进程名称对应的第二板卡中的业务进程。本实施例将业务进程名称对应的业务进程作为目标业务进程。
127.然后,将调试命令消息发送至第二板卡的目标业务进程。
128.目标业务进程的内置任务在接收到调试命令消息后,使用dlsym指令获取调试命令消息中的符号在业务进程中的符号地址,使用符号地址执行符号中的函数、读写符号中的变量和读写变量的内存地址中的一种或多种,本实施例不对此作具体限定。
129.其中,执行函数的方式可以对函数进行逻辑操作等,本实施例不对此作具体地限定。
130.相较于现有技术中在需要调试的板卡内部的开发代码中增加调试日志,本实施例通过直接将调试命令消息下发至需要调试的第二板卡的目标进程中,第二板卡的目标进程在接收到调试命令消息后,可以直接执行调试命令消息,使得用户只需要在客户端输入调试命令,即可实现对需要调试的板卡进行调试,不仅调测方便、操作简单,并且可以有效减少因在需要调试的板卡的开发代码中增加调试日志带来的代码开销。另外,也可以减少因调试日志数量过多带来的执行效率低,以及调试日志数量过少带来的调试效果难以达到目
的的问题。
131.在板卡开发时期,对板卡进行代码单元测试和集成测试是必不可少。在成熟的项目开发过程中,开发者一定会编写单元测试和集成测试用例,这又会增加代码的开销。而本实施例中程序员可以直接用此调试平台来做单元测试或者集成测试,有效减少额外编写测试用例代码的开销。
132.本实施例直接通过客户端接收调试命令,并直接将调试命令消息下发至需要调试的第二板卡中的目标业务进程中,并且业务进程在接收到调试命令消息后,可以直接执行调试命令消息中的函数、读写所述符号中的变量和变量的内存地址中的一种或多种,使得用户只需要在客户端输入调试命令,即可实现对第二板卡的调试,不仅调测方便,操作简单,还可以有效减少因在需要调试的板卡的开发代码中增加调试日志带来的代码开销。
133.在上述实施例的基础上,本实施例中发送模块具体用于:在所述第一板卡为所述第二板卡的情况下,直接将所述调试命令消息发送至所述业务进程;在所述第一板卡不为所述第二板卡的情况下,将所述调试命令消息发送至所述第二板卡的服务端,通过所述第二板卡的服务端将所述调试命令消息发送至所述业务进程。
134.在上述实施例的基础上,本实施例中还包括第一收发模块具体用于:在所述第一板卡为所述第二板卡的情况下,直接接收所述业务进程返回的执行结果、读写所述变量的第一读写结果和读写所述内存地址的第二读写结果中的一种或多种,并将所述执行结果、第一读写结果和第二读写结果中的一种或多种发送至所述客户端;在所述第一板卡不为所述第二板卡的情况下,通过所述第二板卡的服务端接收所述业务进程返回的所述执行结果、第一读写结果和第二读写结果中的一种或多种,并将所述执行结果、第一读写结果和第二读写结果中的一种或多种发送至所述客户端。
135.在上述各实施例的基础上,本实施例中还包括第二收发模块具体用于:向所述第二板卡中处于运行状态的业务进程发送注册信息请求消息,接收所述处于运行状态的业务进程返回的注册信息请求消息的注册信息;将所述注册信息发送至所述客户端,以供所述客户端根据所述注册信息对所述调试命令消息进行校验和补全,以及为编写所述调试命令消息提供提示信息中的一种或多种。
136.在上述实施例的基础上,本实施例中第二收发模块还用于:在所述第一板卡为所述第二板卡的情况下,向所述处于运行状态的业务进程发送注册信息请求消息,并直接接收所述处于运行状态的业务进程返回的注册信息请求消息的注册信息;在所述第一板卡不为所述第二板卡的情况下,向所述第二板卡的服务端发送所述注册信息请求消息,并通过所述第二板卡的服务端接收所述处于运行状态的业务进程返回的所述注册信息请求消息的注册信息。
137.在上述实施例的基础上,本实施例中所述注册信息包括板卡号、所述处于运行状态的业务进程的进程编号、描述和支持的符号列表;其中,所述符号列表包括函数和全局变量。
138.在上述实施例的基础上,本实施例中还包括删除模块具体用于:在所述处于运行状态的业务进程由运行状态切换为退出状态的情况下,向所述客户端发送删除所述注册信息的消息,以供所述客户端删除所述注册信息。
139.在上述各实施例的基础上,本实施例中所述客户端的配置文件中的服务端的ip地
址与所述第一板卡的服务端的ip地址一致,且所述配置文件中的服务端的端口号与所述第一板卡的服务端的端口号一致。
140.图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)601、通信接口(communications interface)602、存储器(memory)603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。处理器601可以调用存储器603中的逻辑指令,以执行板卡设备调试方法,该方法包括:第一板卡的服务端接收客户端发送的调试命令消息;根据所述调试命令消息中的板卡号和业务进程名称,将所述调试命令消息发送至所述板卡号对应的第二板卡中所述业务进程名称对应的业务进程,以供所述业务进程根据所述调试命令消息中的符号在所述业务进程中的符号地址,执行所述符号中的函数、读写所述符号中的变量和所述变量的内存地址中的一种或多种。
141.此外,上述的存储器603中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
142.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的板卡设备调试方法,该方法包括:第一板卡的服务端接收客户端发送的调试命令消息;根据所述调试命令消息中的板卡号和业务进程名称,将所述调试命令消息发送至所述板卡号对应的第二板卡中所述业务进程名称对应的业务进程,以供所述业务进程根据所述调试命令消息中的符号在所述业务进程中的符号地址,执行所述符号中的函数、读写所述符号中的变量和所述变量的内存地址中的一种或多种。
143.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
144.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
145.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管
参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1