追踪消息的传输方法、电子设备及存储介质

文档序号:135325 发布日期:2021-10-22 浏览:15次 >En<

阅读说明:本技术 追踪消息的传输方法、电子设备及存储介质 (Tracking message transmission method, electronic device and storage medium ) 是由 刘君 于 2020-04-15 设计创作,主要内容包括:本申请公开了一种追踪消息的传输方法及电子设备、存储介质。其中,追踪消息的发送方法包括:通过至少两个输出接口中的第一输出接口,向接收端发送目标系统生成的追踪消息;其中,所述第一输出接口处于第一状态;在所述第一输出接口由第一状态变为第二状态的情况下,通过所述第一输出接口和所述至少两个输出接口中的第二输出接口,向所述接收端发送所述目标系统生成的追踪消息;其中,所述第一状态表征输出接口未发生阻塞;所述第二状态表征输出接口发生阻塞。(The application discloses a transmission method of a trace message, electronic equipment and a storage medium. The method for sending the tracking message comprises the following steps: sending a tracking message generated by a target system to a receiving end through a first output interface of at least two output interfaces; wherein the first output interface is in a first state; when the first output interface is changed from a first state to a second state, sending a tracking message generated by the target system to the receiving end through the first output interface and a second output interface of the at least two output interfaces; wherein the first state represents that the output interface is not blocked; the second state is indicative of an output interface being blocked.)

追踪消息的传输方法、电子设备及存储介质

技术领域

本申请涉及嵌入式系统领域,尤其涉及一种追踪消息的传输方法、电子设备及存储介质。

背景技术

追踪技术是嵌入式系统中常见的一种分析和调试手段,也可以用来对系统进行优化。测试人员通过追踪(Trace)输出接口输出追踪消息,调试与测试系统(DTS,Debug TestSystem)在对应的输入接口接收追踪消息,进而生成日志(Log)。研发工程师利用专门的工具分析log,从而发现和解决问题,也可以以此来优化系统。

由于输出接口的速率限制,并不能有效地满足超高速追踪的需求,特别是第五代移动通信技术(5G,5th generation mobile networks)这样的超高速系统。

发明内容

本发明实施例提供了一种追踪消息的传输方法及电子设备、存储介质,以至少解决相关技术中输出接口无法满足超高速追踪需求的问题。

本申请实施例的技术方案是这样实现的:

一方面,本申请实施例提供了一种追踪消息的发送方法,该方法包括:

通过至少两个输出接口中的第一输出接口,向接收端发送目标系统生成的追踪消息;其中,所述第一输出接口处于第一状态;

在所述第一输出接口由第一状态变为第二状态的情况下,通过所述第一输出接口和所述至少两个输出接口中的第二输出接口,向所述接收端发送所述目标系统生成的追踪消息;其中,

所述第一状态表征输出接口未发生阻塞;所述第二状态表征输出接口发生阻塞。

另一方面,本申请实施例提供了一种追踪消息的接收方法,该方法包括:

通过与目标系统的至少两个输出接口一一对应的至少两个输入接口接收追踪消息;每条追踪消息由目标系统生成,且由发送端通过所述至少两个输出接口中的一个输出接口发送;

合并所述至少两个输入接口中的所有输入接口接收到的追踪消息,得到关于所述目标系统的日志文件。

再一方面,本申请实施例提供了一种电子设备,该电子设备包括:

第一发送单元,用于通过至少两个输出接口中的第一输出接口,向接收端发送目标系统生成的追踪消息;其中,所述第一输出接口处于第一状态;

第二发送单元,用于在所述第一输出接口由第一状态变为第二状态的情况下,通过所述第一输出接口和所述至少两个输出接口中的第二输出接口,向所述接收端发送所述目标系统生成的追踪消息;其中,

所述第一状态表征输出接口未发生阻塞;所述第二状态表征输出接口发生阻塞。

再一方面,本申请实施例提供了一种电子设备,该电子设备包括:

接收单元,用于通过与目标系统的至少两个输出接口一一对应的至少两个输入接口接收追踪消息;每条追踪消息由目标系统生成,且由发送端通过所述至少两个输出接口中的一个输出接口发送;

合并单元,用于合并所述至少两个输入接口中的所有输入接口接收到的追踪消息,得到关于所述目标系统的日志文件。

再一方面,本申请实施例提供了一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行上述追踪消息的传输方法。

再一方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时执行上述追踪消息的传输方法。

本申请实施例中,当第一输出接口未阻塞时,通过第一输出接口向接收端发送目标系统生成的追踪消息。而在第一输出接口发生阻塞的情况下,通过第一输出接口和第二输出接口向接收端发送目标系统生成的追踪消息,能够充分利用系统中两个以上的输出接口,实现了输出接口的自动适应,在系统没有超高速输出接口的情况下,也能有效的提高系统追踪的带宽,降低了对系统的要求,达到提升系统追踪的灵活性,有效避免追踪消息溢出的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为相关技术提供的一种追踪系统的示意架构图;

图2为本申请实施例提供的追踪消息的发送方法的流程示意图;

图3为本申请实施例提供的追踪消息的接收方法的流程示意图;

图4为本申请实施例提供的一种生成日志文件的流程示意图;

图5为本申请实施例提供的一种追踪系统的示意架构图;

图6为本申请实施例提供的一种电子设备的结构组成示意图;

图7为本申请实施例提供的另一种电子设备的结构组成示意图;

图8为本申请实施例提供的一种电子设备的硬件组成结构示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

为便于理解本申请实施例的技术方案,以下对本申请实施例涉及到的相关技术进行说明。

调试(Debug)是指侦测,追踪和消除软件错误。调试也用于对嵌入式处理器系统进行性能测试和系统级硬件调试。

追踪(Trace)是一种分析和调试手段,也被称为跟踪技术。它使处理器或系统的活动在外部实时可见,或对系统活动进行存储和检索,以便应用程序开发者通过相关程序或外部设备来进行相关查看。

行动产业处理器接口(MIPI,Mobile Industry Processor Interface)联盟定义了目标系统(TS,Target System)和调试与测试系统(DTS,Debug and Test System)。

TS是指被调试的系统。TS可以是一个分离器件,例如一个芯片,也可以是一块基板或一组基板上的多个分离器件组成的集合体。TS还可能包含0到N个独立的调试和测试目标。

DTS是指当连接到TS时,为系统开发人员提供调试可见性和控制的硬件和软件组合系统。该系统包括:

主机:工作站或其他处理系统,运行调试或测试软件,控制调试和测试控制器。

调试器:调试软件,调试和测试系统的一部分。它与调试和测试控制器交互,并提供操作调试和测试控制器(如控制单步,设置断点,内存显示/修改,追踪重建等)的用户界面。

图1是相关技术提供的一种追踪系统架构图,如图1所示,相关技术中,TS将生成的追踪消息向DTS发送的流程包括:

追踪源至追踪模块:TS上存在多个追踪源,各追踪源将生成的追踪消息发送到追踪模块,追踪模块对追踪消息进行打包封装,例如,追踪模块基于系统追踪协议(STP,System Trace Protocol)生成STP Trace数据流。

追踪模块至选择模块:追踪模块向选择模块发送STP Trace数据流。

选择模块至输出接口:选择模块基于不同的测试场景,从TS系统拥有的输出接口中选择其中一个输出接口,用于向DTS发送STP Trace数据流,该STP Trace数据流用于DTS生成日志文件。需要说明的是,相关技术中对于一个STP Trace数据流,仅使用一个设定的输出接口进行传输。

DTS根据TS中的追踪消息生成日志文件的流程包括:

输入接口至多路复用模块:DTS通过与发送STP Trace数据流的输出接口对应的一个输入接口接收STP Trace数据流,并将该STP Trace数据流发送至多路复用模块。需要说明的是,DTS的输入接口与TS的输入接口一一对应。

多路复用模块至日志生成模块:多路复用模块将从某个输入接口接收到的STPTrace数据流发送至日志生成模块,用以生成日志文件。应理解,研发工程师可以利用专门的工具分析日志文件,从而发现和解决TS中的问题,也可以以此来优化系统。

综上,相关技术中,TS只能从一个输出接口输出追踪消息到DTS。由于单个接口的速率限制,并不能有效地满足超高速追踪的需求,特别是5G这样的超高速系统。仅通过一个输出接口发送追踪消息会导致追踪消息丢失,或者部分追踪消息因为受到限制而不能输出。

基于此,提出了本申请实施例的以下技术方案,在TS的第一输出接口发生阻塞的情况下,通过第一输出接口和第二输出接口向接收端发送目标系统生成的追踪消息,能够充分利用系统中两个以上的输出接口,实现了输出接口的自动适应,在系统没有超高速输出接口的情况下,也能有效的提高系统追踪的带宽,降低了对系统的要求,达到提升系统追踪的灵活性,有效避免追踪消息溢出的效果。

下面介绍追踪消息的传输方法的执行步骤,图2是本申请实施例提供的追踪消息的发送方法的流程示意图,如图2所示,该流程包括如下步骤:

步骤201,通过至少两个输出接口中的第一输出接口,向接收端发送目标系统生成的追踪消息;其中,所述第一输出接口处于第一状态。

步骤202,在所述第一输出接口由第一状态变为第二状态的情况下,通过所述第一输出接口和所述至少两个输出接口中的第二输出接口,向所述接收端发送所述目标系统生成的追踪消息;其中,所述第一状态表征输出接口未发生阻塞;所述第二状态表征输出接口发生阻塞。

上述步骤的执行主体为TS的设备载体,可以是移动终端、计算机终端或者类似的运算装置等电子设备,但不限于此。为了方便描述,下文以发送端表示执行主体,发送端可以理解为是发送端设备。

需要说明的是,本申请实施例中,发送端至少包括两个输出接口,这些输出接口可以是用于输出目标系统生成的追踪消息。根据MIPI对输出接口及输入接口的支持情况,输出接口可以是通用串行总线(USB,Universal Serial Bus)接口,也可以是微型安全数码(micro SD,micro Secure Digital)接口,高清多媒体接口(HDMI,High DefinitionMultimedia Interface),高速串行计算机扩展总线(PCIe,Peripheral ComponentInterconnect express)接口,或者数字式显示(DP,DisplayPort)接口等。

在步骤201中,在第一输出接口未发生阻塞的情况下(即第一状态),发送端仅通过第一输出接口向接收端发送追踪消息。

需要说明的是,第一输出接口可以是TS系统预设的,也可以是用户设定的。优选地,第一输出接口可以是TS中输出接口最高优先级的输出接口,优先级可以根据不同的指标来定义,例如接口带宽、接口的功耗或者接口的稳定性。在一个实施例中,第一输出接口为吞吐率达到设定要求的输出接口。

还需要说明的是,第一状态表征输出接口未发生阻塞。输出接口未发生阻塞的定义可以是系统设定的,也可以用户自行设定的。例如,可将输出接口的带宽使用率小于95%的状态定义为输出接口未发生阻塞。较为普遍的情况是将输出接口的带宽使用率小于100%的状态定义为输出接口未发生阻塞。在一些可能的实施例中,第一输出接口未发生阻塞的情况,可以为第一输出接口的带宽足够承载全部追踪消息发送需求的情况。

在步骤202中,第一输出接口由未发生阻塞状态(即第一状态)转为阻塞状态(即第二状态)的情况下,通过第一输出接口和第二输出接口,向接收端发送TS生成的追踪消息。

应理解,执行步骤202的目的是解决相关技术中通过单个输出接口发送追踪消息时可能面对的追踪消息溢出问题。当发送端确定第一输出接口出现了阻塞时,通过第二输出接口分担传送第一输出接口无法发送的追踪消息,实现了输出接口的自动适应,在系统没有单个超高速输出接口的情况下,也能有效的提高系统追踪的带宽,降低了对系统的要求,达到提升系统追踪的灵活性和有效避免追踪消息溢出的效果。

实际应用中,在所述目标系统配置有至少三个输出接口的情况下,所述第二输出接口在所述至少三个输出接口中的所有处于所述第一状态的输出接口中优先级最高。

具体地,在第一输出接口处于阻塞的状态时,第二输出接口是目标系统所拥有的其他全部输出接口中优先级最高的输出接口。

在步骤202中,需要说明的是,所述通过所述第一输出接口和所述至少两个输出接口中的第二输出接口,向所述接收端发送所述目标系统生成的追踪消息时,可以通过以下流程实现:

当所述目标系统生成追踪消息时,确定第一指针在设定路由表中指向的表项;

通过所述第一指针指向的表项中的第二指针调用发送函数,以使所述至少两个输出接口中的第二输出接口向所述接收端发送所述目标系统生成的追踪消息。

其中,所述第一指针用于指向所述第二输出接口在所述设定路由表中对应的表项;所述设定路由表中的每个表项分别与所述至少两个输出接口中的一个输出接口对应,且至少记录有对应的输出接口的第二指针;所述第二指针用于调用对应的输出接口的发送函数。

下面结合表1对本申请实施例进行进一步说明。表1示出了本申请实施例提供的一种设定路由表的示例,表项中包括输出接口、状态、优先级、发送函数指针(即第二指针),还可以包括预留项,预留项可以根据系统的应用来设定。

下面依次对各表项进行说明:

输出接口:表示系统支持的所有输出接口中的任一输出接口。

优先级:表示对应的输出接口的优先级,能够指示对应的输出接口被选中的顺序。优先级可以根据不同的指标来定义,比如接口带宽、接口的功耗或者接口的稳定性。为了能够快速的遍历路由表,该表可以根据优先级的顺序来排序。

状态:表示输出接口的实时状态。状态表项可选的值需要根据系统的具体情况来定义,包括使能、关闭、阻塞(即第二状态)和工作(即第一状态)。优选地,每当接口的状态发生改变时,状态要及时更新。

发送函数指针:表示该输出接口的发送函数指针。通过该指针,可以调用输出接口对应的发送函数。

在一些可能的实施例中,发送端通过路由模块维护有一个全局工作路由指针(即第一指针),该指针指向路由表中优先级最高的,并且状态为工作的路由表项。每当路由模块接收到追踪消息时,通过这个全局工作路由指针,找到对应的发送函数指针(即第二指针),然后调用该函数把追踪消息发送出去。

表1

在第一输出接口阻塞时,发送端确定全局工作路由指针在设定路由表中指向的表项。

这里,需要理解的是,第一输出接口阻塞不代表第一输出接口停止向接收端发送追踪消息。举个例子:路由模块在确定第一输出接口处于阻塞状态时,将还未进行分配输出接口的追踪消息改为配置给第二输出接口发送,但对于已经配置给第一输出接口发送的追踪消息,仍由第一输出接口发送。

发送端通过全局工作路由指针指向的表项中的第二指针调用发送函数,通过第二输出接口向接收端发送目标系统生成的追踪消息。

需要说明的是,本申请实施例中,具体选用一个或多个输出接口发送追踪消息,是根据输出接口的状态来判断的。而在实际应用中,输出接口的状态是跟随工作情况可能发生变动。因此,优选地,在一些可能的实施例中,追踪消息的传输方法还包括:

监测所述至少两个输出接口中的每个输出接口是否处于所述第二状态,得到监测结果;

根据所述监测结果更新所述第一指针。

具体地,发送端监测每个输出接口是否处于阻塞状态,得到监测结果,根据监测结果更新全局工作路由指针。应理解,当某一输出接口处于阻塞状态时,全局工作路由指针应避免指向该输出接口。容易想到的是,全局工作路由指针也不会指向状态为关闭及使能的输出接口。

在实际应用中,全局的工作路由指针可以由输出监控模块实时维护。输出监控模块监测输出接口的状态,如果任何的输出接口的状态发生了改变,就需要相应地更新该指针。优选地,把该指针设置为路由表中优先级最高的,并且状态为工作(即第一状态)的路由表项。

对于步骤202,还需要说明的是,当第一输出接口由第一状态变为第二状态的情况下,还未分配给第一输出接口的追踪消息将改为通过第二输出接口发送,对应的接收端将通过至少两个输入接口接收发送端发送的全部追踪消息,因此,接收端需要按照设定规则去合并不同输入接口接受的追踪消息,以生成最终的日志文件。为了方便接收端合并追踪消息,在一些可能的实施例中,发送端可以通过以下方式携带附加信息,以使接收端能够合并追踪消息:

方式一:发送端对于生成的每一个追踪消息,通过时间戳模块读取当前的时间戳,然后加入到每条追踪消息中。

每条追踪消息都有唯一的时间戳,用于标记对应的追踪消息的生成时间。

方式二:生成接口变更消息,所述接口变更消息指示了所述第二输出接口;通过所述第一输出接口发送所述接口变更消息,以使所述接收端根据所述接口变更消息合并所述至少两个输出接口发送的追踪消息。

具体地,在第一输出接口由第一状态变为第二状态的情况下,发送端生成接口变更消息,该接口变更消息用于指示对应的第二输出接口。发送端通过第一输出接口发送该接口变更消息。

下面结合表2对本申请实施例进行进一步举例说明。表2示出了本申请实施例提供的接口变更消息的消息格式示例。

表2

输出接口状态 时间戳 新输出接口

在一些可能的实施例中,当第一输出接口由第一状态变为第二状态的情况下,发送端停止向第一输出接口配置追踪消息,第一输出接口需继续发送已经配置的追踪消息,并且将接口变更消息,配置给第一输出接口,插入在第一输出接口当前配置的消息队列的末尾。表2中各表项的介绍如下:

输出接口状态:表示这是一个关于输出接口改变的状态包。

时间戳:时戳信息。

新输出接口:新选择的输出接口。

需要说明的是,与前述追踪消息的时间戳不同,接口变更消息中的时戳信息是该接口变更消息生成的时间。

实际应用中,在使用第一输出接口和第二输出接口一同向接收端发送追踪消息时,仍无法承载追踪消息所需的传输速率的情况下,容易想到的是,继续按照与选用第二输出接口相同的方式,选取第三输出接口,以用于连同第一输出接口和第二输出接口一同向接收端发送追踪消息。如果仍无法满足追踪消息所需的传输速率,则继续选用第四输出接口,在此不再赘述。这里,一个或多个输出接口是否满足追踪消息的传输速率,可以通过监控TS中的追踪消息缓存的占用情况来判断,也可以通过监控各个正在进行传输的输出接口的带宽占用情况来判断,还可以通过监控追踪消息的总生成速率与正在进行传输的一个或多个输出接口的总传输带宽的差值来判断。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

通过上述步骤,发送端解决了系统没有超高速输出接口的情况下面对的追踪消息溢出或无法发送的问题,提高了提高系统追踪的带宽,降低了对系统的要求,达到提升系统追踪的灵活性和有效避免追踪消息溢出的效果。

图3是本申请实施例提供的追踪消息的接收方法的流程示意图,如图3所示,该流程包括如下步骤:

步骤301,通过与目标系统的至少两个输出接口一一对应的至少两个输入接口接收追踪消息;每条追踪消息由目标系统生成,且由发送端通过所述至少两个输出接口中的一个输出接口发送。

步骤302,合并所述至少两个输入接口中的所有输入接口接收到的追踪消息,得到关于所述目标系统的日志文件。

上述步骤的执行主体为DTS的设备载体,可以是移动终端、计算机终端或者类似的运算装置等电子设备,但不限于此。为了方便描述,下文以接收端表示执行主体,接收端可以理解为是接收端设备。

需要说明的是,本申请实施例中,接收端至少包括两个输入接口,这些输入接口可以是用于接收发送端发送的追踪消息。根据MIPI对输出接口及输入接口的支持情况,输入接口可以是USB接口,也可以micro SD接口,HDMI接口,PCIe接口,或者DP接口等。

在步骤301中,接收端在与目标系统的输出接口对应的输入接口上接收追踪消息。需要说明的是,接收端可以通过轮询或者中断的方式,得知哪个输入接口上有追踪消息。应理解,当发送端通过至少两个输出接口向接收端发送追踪消息时,接收端通过与目标系统的至少两个输出接口一一对应的至少两个输入接口接收追踪消息。所接受的每条追踪消息由发送端通过至少两个输出接口中的一个输出接口发送。这里,对于不同的发送端接口配置和输出传输情况,还可能由第三或第四输出接口发送。

可选地,接收端为所述至少两个输入接口中的每个输入接口分别生成对应的消息集合;所述消息集合中按照接收顺序记录了通过对应的输入接口接收到的消息;所述接收到的消息至少包括追踪消息。

具体地,每个输入接口上的追踪消息会生成一个独立的数据流(Stream)或者保存在一个单独的日志(log)文件中。应理解,如果接收端只收到一个log文件或者Stream,那就不需要进行合并。如果接收端收到多个Stream或者Log文件,这多个Stream或者Log文件是和接收端路由表中的输出接口分别对应的,根据Steam或者Log文件的序号,就可以找出对应的输出接口。

在步骤302中,接收端合并接收到的数据流或日志,生成最终的日志文件

需要说明的是,接收端合并数据流或日志,生成日志文件可以通过以下方式实现:

方式一:接收端基于追踪消息的时间戳,将接收到的所有追踪消息依照时间顺序写入所述日志文件。

具体地,接收端可以分析接收到的每条追踪消息的时间戳,按照先后顺序,合并生成最终的日志文件。

方式二:将所述至少两个输入接口中的所有输入接口对应的消息集合进行合并处理,得到所述日志文件。

在方式二的一些可能的实施例中,对应步骤301中,所述接收到的消息至少包括追踪消息,所述接收到的消息还包括接口变更消息;所述接口变更消息由所述发送端在第一输出接口由第一状态变为第二状态的情况下生成,且由所述第一输出接口发送;所述接口变更消息中指示了所述第二输出接口。接收端生成最终日志文件的流程可以通过以下步骤实现:

依次读取第一输入接口对应的第一消息集合中的消息,并依照读取顺序将读取到的追踪消息写入所述日志文件;所述第一输入接口与所述第一输出接口对应。

在从所述第一消息集合读取到所述接口变更消息的情况下,确定与所述第二输出接口对应的第二输入接口。

依次读取所述第二输入接口对应的第二消息集合中的消息,并依照读取顺序将读取到的追踪消息写入所述日志文件。

下面结合图4对本申请实施例进行进一步举例说明。图4为本申请实施例提供的一种生成日志文件的流程示意图。该流程包括以下步骤:

选择与第一输入接口对应的第一消息集合,第一消息集合可以是Stream或是log,依照读取顺序将读取到的追踪消息写入日志文件。第一输入接口与发送端的第一输出接口对应。

从第一消息集合读取接口变更消息,确定与第二输出接口对应的第二输入接口。

依次读取第二输入接口对应的第二消息集合中的消息,并依照读取顺序将读取到的追踪消息写入所述日志文件。

确认第二输入接口对应的第二消息集合中的最后一条追踪消息是否是发送端发送的全部追踪消息中的最后一条。

若是,结束合并过程,生成最终的日志文件。

若否,则按照接口变更消息所指示的下一输出接口,确定相对应的下一输入接口,重复上述读取消息集合并将追踪消息写入日志文件的过程,直至确认读取到的追踪消息为最后一条追踪消息,生成最终的日志文件。

通过上述步骤,接收端解决了如何对通过多个输入接口接收的追踪消息进行合并的问题,可以充分利用系统中的追踪接口,从而提高系统追踪的带宽

下面结合图5对本申请实施例进行进一步说明。图5示出了本申请实施例提供的一种追踪系统的示意架构图。

需要说明的是,本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置等电子设备中执行。本申请实施例可以运行于图5所示的追踪系统架构上,如图5所示,该追踪系统架构包括:TS(即发送端电子设备)和DTS(即接收端电子设备)。

在图5所示实施例中,TS将生成的追踪消息向DTS发送的流程包括:

追踪源至追踪模块:TS上存在多个追踪源,各追踪源将生成的追踪消息发送到追踪模块,追踪模块对追踪消息进行打包封装,例如,追踪模块基于SIP生成STP Trace数据流。

追踪模块至路由模块:追踪模块向路由模块发送STP Trace数据流。

路由模块至输出接口:路由模块基于设定的路由表,从TS系统拥有的输出接口中选择其中至少一个输出接口,用于向DTS发送STP Trace数据流,该STP Trace数据流用于DTS生成日志文件。需要说明的是,在一个实施例中,在TS选用的第一输出接口处于阻塞状态时,路由模块将确定第二输出接口,TS通过第一输出接口和第二输出接口向DTS发送STPTrace数据流。

在一些可能的实施例中,发送端通过路由模块维护有一个全局的工作路由指针(即第一指针),该指针指向路由表中优先级最高的,并且状态为工作的路由表项。每当路由模块接收到追踪消息时,通过这个全局的工作路由指针,找到对应的发送函数指针(即第二指针),然后调用该函数把追踪消息发送出去。

可选地,路由表中的全局工作路由指针由输出监控模块实时维护。输出监控模块监测输出接口的状态,如果任何的输出接口的状态发生了改变,就需要相应地更新该指针。优选地,把该指针设置为路由表中优先级最高的,并且状态为工作(即第一状态)的路由表项。

可选地,TS对于生成的每一个追踪消息,通过时间戳模块读取当前的时间戳,然后加入到每条追踪消息中。

可选地,在第一输出接口由第一状态变为第二状态的情况下,TS生成接口变更消息,所述接口变更消息指示了所述第二输出接口;通过所述第一输出接口发送所述接口变更消息,以使DTS根据接口变更消息合并至少两个输出接口发送的追踪消息。

DTS根据TS中的追踪消息生成日志文件的流程包括:

输入接口至合并模块:DTS通过与发送STP Trace数据流的输出接口对应的至少一个输入接口接收STP Trace数据流,并将该STP Trace数据流发送至合并模块。需要说明的是,当TS通过至少两个输出接口向DTS发送追踪消息时,DTS通过与TS的至少两个输出接口一一对应的至少两个输入接口接收追踪消息。所接受的每条追踪消息由TS通过第一或第二输出接口发送。

合并模块生成日志文件:合并模块将从多个输入接口接收到的数据流或日志文件进行合并,生成日志文件。应理解,研发工程师可以利用专门的工具分析日志文件,从而发现和解决TS中的问题,也可以以此来优化系统。

可选地,DTS生成最终日志文件的流程可以通过以下步骤实现:

依次读取与第一输出接口对应的第一输入接口对应的第一消息集合中的消息,并依照读取顺序将读取到的追踪消息写入所述日志文件。

在从第一消息集合读取到所述接口变更消息的情况下,确定与第二输出接口对应的第二输入接口。

依次读取第二输入接口对应的第二消息集合中的消息,并依照读取顺序将读取到的追踪消息写入所述日志文件。

重复上述读取消息集合并将追踪消息写入日志文件的过程,直至确认读取到的追踪消息为最后一条追踪消息,生成最终的日志文件。

为实现本申请实施例的追踪消息的发送方法,本申请实施例还提供一种电子设备,如图6所示,该电子设备做为追踪消息的发送端,部署有TS,该电子设备包括:

第一发送单元601,用于通过至少两个输出接口中的第一输出接口,向接收端发送目标系统生成的追踪消息;其中,所述第一输出接口处于第一状态;

第二发送单元602,用于在所述第一输出接口由第一状态变为第二状态的情况下,通过所述第一输出接口和所述至少两个输出接口中的第二输出接口,向所述接收端发送所述目标系统生成的追踪消息;其中,

所述第一状态表征输出接口未发生阻塞;所述第二状态表征输出接口发生阻塞。

一实施例中,所述目标系统配置有至少三个输出接口;所述第二输出接口在所述至少三个输出接口中的所有处于所述第一状态的输出接口中优先级最高。

一实施例中,所述第二发送单元602在通过所述第一输出接口和所述至少两个输出接口中的第二输出接口,向所述接收端发送所述目标系统生成的追踪消息时,用于:

当所述目标系统生成追踪消息时,确定第一指针在设定路由表中指向的表项;

通过所述第一指针指向的表项中的第二指针调用发送函数,以使所述至少两个输出接口中的第二输出接口向所述接收端发送所述目标系统生成的追踪消息;其中,

所述第一指针用于指向所述第二输出接口在所述设定路由表中对应的表项;所述设定路由表中的每个表项分别与所述至少两个输出接口中的一个输出接口对应,且至少记录有对应的输出接口的第二指针;所述第二指针用于调用对应的输出接口的发送函数。

一实施例中,电子设备还包括监测单元,用于:

监测所述至少两个输出接口中的每个输出接口是否处于所述第二状态,得到监测结果;

根据所述监测结果更新所述第一指针。

一实施例中,电子设备还包括:

第一生成单元,用于在所述第一输出接口由第一状态变为第二状态的情况下,生成接口变更消息;所述接口变更消息指示了所述第二输出接口;

第三发送单元,用于通过所述第一输出接口发送所述接口变更消息,以使所述接收端根据所述接口变更消息合并所述至少两个输出接口发送的追踪消息。

实际应用时,第一发送单元601、第二发送单元602和监测单元、第一生成单元、第三发送单元可由电子设备中的处理器来实现,当然,处理器需要运行存储器中存储的程序来实现上述各程序模块的功能。

为实现本申请实施例的追踪消息的接收方法,本申请实施例还提供一种电子设备,如图7所示,该电子设备做为追踪消息的接收端,部署有DTS,该电子设备包括:

接收单元701,用于通过与目标系统的至少两个输出接口一一对应的至少两个输入接口接收追踪消息;每条追踪消息由目标系统生成,且由发送端通过所述至少两个输出接口中的一个输出接口发送;

合并单元702,用于合并所述至少两个输入接口中的所有输入接口接收到的追踪消息,得到关于所述目标系统的日志文件。

一实施例中,所述合并单元702,用于:

基于追踪消息的时间戳,将接收到的所有追踪消息依照时间顺序写入所述日志文件。

一实施例中,在所述接收单元701通过与目标系统的至少两个输出接口一一对应的至少两个输入接口接收追踪消息时,电子设备还包括:

第二生成单元,用于为所述至少两个输入接口中的每个输入接口分别生成对应的消息集合;所述消息集合中按照接收顺序记录了通过对应的输入接口接收到的消息;所述接收到的消息至少包括追踪消息;

所述合并单元702,用于:

将所述至少两个输入接口中的所有输入接口对应的消息集合进行合并处理,得到所述日志文件。

一实施例中,所述接收到的消息还包括接口变更消息;所述接口变更消息由所述发送端在第一输出接口由第一状态变为第二状态的情况下生成,且由所述第一输出接口发送;所述接口变更消息中指示了所述第二输出接口;

所述合并单元702将所述至少两个输入接口中的所有输入接口对应的消息集合进行合并处理,得到关于所述目标系统的日志文件时,用于:

依次读取第一输入接口对应的第一消息集合中的消息,并依照读取顺序将读取到的追踪消息写入所述日志文件;所述第一输入接口与所述第一输出接口对应;

在从所述第一消息集合读取到所述接口变更消息的情况下,确定与所述第二输出接口对应的第二输入接口;

依次读取所述第二输入接口对应的第二消息集合中的消息,并依照读取顺序将读取到的追踪消息写入所述日志文件。

实际应用时,接收单元701和合并单元702、第二生成单元可由电子设备中的处理器来实现,当然,处理器需要运行存储器中存储的程序来实现上述各程序模块的功能。

需要说明的是,上述图6、图7中,实施例提供的电子设备仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将电子设备的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的电子设备与追踪消息的传输方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种电子设备。图8是本申请实施例提供的一种电子设备800的硬件组成结构示意图。图8所示的电子设备800包括处理器810,处理器810可以从存储器中调用并运行计算机程序,以实现本申请实施例中的方法。

可选地,如图8所示,电子设备800还可以包括存储器820。其中,处理器810可以从存储器820中调用并运行计算机程序,以实现本申请实施例中的方法。

其中,存储器820可以是独立于处理器810的一个单独的器件,也可以集成在处理器810中。

可选地,如图8所示,电子设备800还可以包括收发器830,处理器810可以控制该收发器830与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。

其中,收发器830可以包括发射机和接收机。收发器830还可以进一步包括天线,天线的数量可以为一个或多个。

可选地,该电子设备800可以实现本申请实施例的各个追踪消息的发送方法的相应流程,或者,该电子设备800可以实现本申请实施例的各个追踪消息的接收方法的相应流程,为了简洁,在此不再赘述。

本申请实施例中的存储器用于存储各种类型的数据以支持电子设备中的操作。这些数据的示例包括:用于在相关设备上操作的任何计算机程序。

可以理解,存储器可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

上述本申请实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的程序,结合其硬件完成前述方法的步骤。

处理器执行所述程序时实现本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。

在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器,上述计算机程序可由处理器执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置、电子设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种面向并发数据分析任务的性能瓶颈分析系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!