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调试,所以在现网环境出现流量不通或业务功能异常时就无法使用现有技术判断出报文经过的函数调用流程,进而无法确认报文被丢弃在哪一层(二层:物理链路层;三层:传输层;四层及以上:网络层),是接收方向有问题,还是发送方向有问题等。鉴于此,如何解决在现网环境出现流量不通或业务功能异常时不能获得报文所经函数调用流程的问题成为目前需要解决的技术问题。
技术实现思路
为解决上述的技术问题,本专利技术提供一种报文轨迹追踪方法及装置,能够解决在现网环境出现流量不通或业务功能异常时不能获得报文所经函数调用流程的问题。第一方面,本专利技术提供一种报文轨迹追踪方法,包括:在接收到用户输入的预设命令时,判断所述预设命令是否为报文轨迹追踪功能的开启命令,所述开启命令中预先设置了标记报文;若所述预设命令为报文轨迹追踪功能的开启命令,则在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号。可选地,所述预设命令中包括:预设全局变量和预设全局变量 ...
【技术保护点】
一种报文轨迹追踪方法,其特征在于,包括:在接收到用户输入的预设命令时,判断所述预设命令是否为报文轨迹追踪功能的开启命令,所述开启命令中预先设置了标记报文;若所述预设命令为报文轨迹追踪功能的开启命令,则在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号。
【技术特征摘要】
1.一种报文轨迹追踪方法,其特征在于,包括:在接收到用户输入的预设命令时,判断所述预设命令是否为报文轨迹追踪功能的开启命令,所述开启命令中预先设置了标记报文;若所述预设命令为报文轨迹追踪功能的开启命令,则在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号。2.根据权利要求1所述的方法,其特征在于,所述预设命令中包括:预设全局变量和预设全局变量指针;所述预设全局变量为报文轨迹追踪功能开关标志位,所述预设全局变量为第一预设值表示开启报文轨迹追踪功能,所述预设全局变量为第二预设值表示关闭报文轨迹追踪功能;所述预设全局变量指针,用于在报文轨迹追踪功能开启时记录作为报文追踪对象的标记报文指针,在报文轨迹追踪功能关闭时赋值为空;所述预设宏函数中预先设置结构体数组并声明所述预设结构体数组的全局变量;所述预设结构体数组的成员,包括但不限于:文件名、函数名和行号。3.根据权利要求2所述的方法,其特征在于,所述在报文流程中依次调用预设宏函数,以获取并展示标记报文在报文流程中经过的文件名、函数名和行号,包括:在报文流程中依次调用预设宏函数,利用所述预设宏函判断当前报文是否为标记报文,若是,则将对应调用所述预设宏函数的文件名、函数名和行号记录进所述预设宏函数中的预设结构体数组的变量中,并将所述预设结构体数组的下标进行累加;循环遍历所述预设宏函数中的预设结构体数组的全局变量,将标记报文经过的文件名、函数名和行号进行展示。4.根据权利要求3所述的方法,其特征在于,所述判断当前报文是否为标记报文,包括:判断调用后预设宏函数中的入参报文指针是否等于标记报文指针;若所述入参报文指针等于标记报文指针,则确定当前报文为标记报文。5.根据权利要求3所述的方法,其特征在于,所述将对应调用所述预设宏函数的文件名、函数名和行号记录进预设结构体数组的变量中,包括:借助linux提供的宏,将对应调用所述预设宏函数的文件名、函数名和行号记录进预设结构体数组的变量中。6.根据权利...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。