报文轨迹追踪方法及装置制造方法及图纸

技术编号:15298994 阅读:94 留言:0更新日期:2017-05-12 00:43
本发明专利技术提供一种报文轨迹追踪方法及装置,其中,方法包括:在接收到用户输入的预设命令时,判断预设命令是否为报文轨迹追踪功能的开启命令,所述开启命令中预先设置了标记报文;若预设命令为报文轨迹追踪功能的开启命令,则在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号。该方法能解决在现网环境出现流量不通或业务功能异常时不能获得报文所经函数调用流程的问题。

Message path tracking method and device

The present invention provides including tracking method and device, a message path method: in the receiving user input the preset commands when judging the open command preset command is tracking message track function, the open command set mark message; if the default command on command message tracking function is. In the process of message in order to obtain the default macro function calls, and display message after message marker in the process of file name and function name and line number. The method can solve the problem that the function call process of message cannot be obtained in the presence of no traffic or service function in the network environment.

【技术实现步骤摘要】

本专利技术涉及计算机及通信
,尤其涉及一种报文轨迹追踪方法及装置
技术介绍
目前,研发内部定位问题一般使用消除故障程序debug调试版本,获取报文轨迹的方法一般是程序调试工具gdb下通过设置断点然后使用bt命令查看函数调用栈信息,或依次逐层设置目标函数为断点,若目标函数被断住则执行到了该函数,然则反之.但是gdb调试过程中流量是中断的;现网发布使用的版本一般为release版本,非gdb方式启动不能直接进行gdb调试,并且在不允许流量中断的现网环境调试时一般也无法使用gdbattatchpid的方式进行gdb调试,所以在现网环境出现流量不通或业务功能异常时就无法使用现有技术判断出报文经过的函数调用流程,进而无法确认报文被丢弃在哪一层(二层:物理链路层;三层:传输层;四层及以上:网络层),是接收方向有问题,还是发送方向有问题等。鉴于此,如何解决在现网环境出现流量不通或业务功能异常时不能获得报文所经函数调用流程的问题成为目前需要解决的技术问题。
技术实现思路
为解决上述的技术问题,本专利技术提供一种报文轨迹追踪方法及装置,能够解决在现网环境出现流量不通或业务功能异常时不能获得报文所经函数调用流程的问题。第一方面,本专利技术提供一种报文轨迹追踪方法,包括:在接收到用户输入的预设命令时,判断所述预设命令是否为报文轨迹追踪功能的开启命令,所述开启命令中预先设置了标记报文;若所述预设命令为报文轨迹追踪功能的开启命令,则在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号。可选地,所述预设命令中包括:预设全局变量和预设全局变量指针;所述预设全局变量为报文轨迹追踪功能开关标志位,所述预设全局变量为第一预设值表示开启报文轨迹追踪功能,所述预设全局变量为第二预设值表示关闭报文轨迹追踪功能;所述预设全局变量指针,用于在报文轨迹追踪功能开启时记录作为报文追踪对象的标记报文指针,在报文轨迹追踪功能关闭时赋值为空;所述预设宏函数中预先设置结构体数组并声明所述预设结构体数组的全局变量;所述预设结构体数组的成员,包括但不限于:文件名、函数名和行号。可选地,所述在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号,包括:在报文流程中依次调用预设宏函数,利用所述预设宏函判断当前报文是否为标记报文,若是,则将对应调用所述预设宏函数的文件名、函数名和行号记录进所述预设宏函数中的预设结构体数组的变量中,并将所述预设结构体数组的下标进行累加;循环遍历所述预设宏函数中的预设结构体数组的全局变量,将标记报文经过的文件名、函数名和行号进行展示。可选地,所述判断当前报文是否为标记报文,包括:判断调用后预设宏函数中的入参报文指针是否等于标记报文指针;若所述入参报文指针等于标记报文指针,则确定当前报文为标记报文。可选地,所述将对应调用所述预设宏函数的文件名、函数名和行号记录进预设结构体数组的变量中,包括:借助linux提供的宏,将对应调用所述预设宏函数的文件名、函数名和行号记录进预设结构体数组的变量中。可选地,在所述获取并展示标记报文在报文流程中经过的文件名、函数名和行号之后,所述方法还包括:将标记报文的函数调用栈信息与正常报文流程的函数调用栈信息进行对比,确认标记报文所经函数调用流程是否正常并在不正常时定位现网问题。第二方面,本专利技术提供一种报文轨迹追踪方法装置,包括:判断模块,用于在接收到用户输入的预设命令时,判断所述预设命令是否为报文轨迹追踪功能的开启命令,所述开启命令中预先设置了标记报文;调用模块,用于若所述预设命令为报文轨迹追踪功能的开启命令,则在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号。可选地,所述预设命令中包括:预设全局变量和预设全局变量指针;所述预设全局变量为报文轨迹追踪功能开关标志位,所述预设全局变量为第一预设值表示开启报文轨迹追踪功能,所述预设全局变量为第二预设值表示关闭报文轨迹追踪功能;所述预设全局变量指针,用于在报文轨迹追踪功能开启时记录作为报文追踪对象的标记报文指针,在报文轨迹追踪功能关闭时赋值为空;所述预设宏函数中预先设置结构体数组并声明所述预设结构体数组的全局变量;所述预设结构体数组的成员,包括但不限于:文件名、函数名和行号。可选地,所述调用模块,具体用于若所述预设命令为报文轨迹追踪功能的开启命令,则在报文流程中依次调用预设宏函数,利用所述预设宏函判断当前报文是否为标记报文,若是,则将对应调用所述预设宏函数的文件名、函数名和行号记录进所述预设宏函数中的预设结构体数组的变量中,并将所述预设结构体数组的下标进行累加;循环遍历所述预设宏函数中的预设结构体数组的全局变量,将标记报文经过的文件名、函数名和行号进行展示。可选地,所述装置还包括:对比模块,用于将标记报文的函数调用栈信息与正常报文流程的函数调用栈信息进行对比,确认标记报文所经函数调用流程是否正常并在不正常时定位现网问题。由上述技术方案可知,本专利技术的报文轨迹追踪方法及装置,通过在接收到用户输入的预设命令时,判断所述预设命令是否为报文轨迹追踪功能的开启命令,所述开启命令中预先设置了标记报文,若所述预设命令为报文轨迹追踪功能的开启命令,则在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号,能够解决在现网环境出现流量不通或业务功能异常时不能获得报文所经函数调用流程的问题,可将标记报文的函数调用栈信息与正常报文流程的函数调用栈信息进行对比,确认标记报文所经函数调用流程是否正常,可用于快速定位网络不通或业务功能异常等现网问题。附图说明图1为本专利技术一实施例提供的一种报文轨迹追踪方法的流程示意图;图2为本专利技术一实施例提供的一种报文轨迹追踪方法装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本专利技术保护的范围。图1示出了本专利技术一实施例提供的报文轨迹追踪方法的流程示意图,如图1所示,本实施例的报文轨迹追踪方法如下所述。101、在接收到用户输入的预设命令时,判断所述预设命令是否为报文轨迹追踪功能的开启命令,所述开启命令中预先设置了标记报文。其中,所述预设命令中可包括:预设全局变量和预设全局变量指针;所述预设全局变量为报文轨迹追踪功能开关标志位,所述预设全局变量为第一预设值表示开启报文轨迹追踪功能,所述预设全局变量为第二预设值表示关闭报文轨迹追踪功能;所述预设全局变量指针,用于在报文轨迹追踪功能开启时记录作为报文追踪对象的标记报文指针,在报文轨迹追踪功能关闭时赋值为空NULL。例如,所述预设全局变量可以设置为g_ulPacketTrackFlag,所述预设全局变量指针可以设置为g_pstPacketTrace,所述第一预设值可以为1,所述第二预设值可以为0,在用户要输入预设命令开启报文轨迹追踪功能时g_ulPacketTrackFlag置1并预先将g_pstPacke本文档来自技高网...
报文轨迹追踪方法及装置

【技术保护点】
一种报文轨迹追踪方法,其特征在于,包括:在接收到用户输入的预设命令时,判断所述预设命令是否为报文轨迹追踪功能的开启命令,所述开启命令中预先设置了标记报文;若所述预设命令为报文轨迹追踪功能的开启命令,则在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号。

【技术特征摘要】
1.一种报文轨迹追踪方法,其特征在于,包括:在接收到用户输入的预设命令时,判断所述预设命令是否为报文轨迹追踪功能的开启命令,所述开启命令中预先设置了标记报文;若所述预设命令为报文轨迹追踪功能的开启命令,则在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号。2.根据权利要求1所述的方法,其特征在于,所述预设命令中包括:预设全局变量和预设全局变量指针;所述预设全局变量为报文轨迹追踪功能开关标志位,所述预设全局变量为第一预设值表示开启报文轨迹追踪功能,所述预设全局变量为第二预设值表示关闭报文轨迹追踪功能;所述预设全局变量指针,用于在报文轨迹追踪功能开启时记录作为报文追踪对象的标记报文指针,在报文轨迹追踪功能关闭时赋值为空;所述预设宏函数中预先设置结构体数组并声明所述预设结构体数组的全局变量;所述预设结构体数组的成员,包括但不限于:文件名、函数名和行号。3.根据权利要求2所述的方法,其特征在于,所述在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号,包括:在报文流程中依次调用预设宏函数,利用所述预设宏函判断当前报文是否为标记报文,若是,则将对应调用所述预设宏函数的文件名、函数名和行号记录进所述预设宏函数中的预设结构体数组的变量中,并将所述预设结构体数组的下标进行累加;循环遍历所述预设宏函数中的预设结构体数组的全局变量,将标记报文经过的文件名、函数名和行号进行展示。4.根据权利要求3所述的方法,其特征在于,所述判断当前报文是否为标记报文,包括:判断调用后预设宏函数中的入参报文指针是否等于标记报文指针;若所述入参报文指针等于标记报文指针,则确定当前报文为标记报文。5.根据权利要求3所述的方法,其特征在于,所述将对应调用所述预设宏函数的文件名、函数名和行号记录进预设结构体数组的变量中,包括:借助linux提供的宏,将对应调用所述预设宏函数的文件名、函数名和行号记录进预设结构体数组的变量中。6.根据权利...

【专利技术属性】
技术研发人员:高福亮
申请(专利权)人:汉柏科技有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1