日志文件输出控制方法及装置和协议栈分析设备制造方法及图纸

技术编号:38318166 阅读:9 留言:0更新日期:2023-07-29 09:00
本申请提供一种日志文件输出控制方法及装置和协议栈分析设备,涉及日志管理技术领域。本申请通过在待检测协议栈程序的多个代码关键位置分别插入一个能够在处于禁能状态时按照空指令运行的日志追踪指令,使该待检测协议栈程序在所有日志追踪指令均处于禁能状态时无需输出日志地正常运行,并在获取到日志追踪使能请求后通过将对应指向的目标日志追踪指令置于使能状态,使各个目标日志追踪指令分别按照匹配的日志钩子函数调用指令运行,来获取待检测协议栈程序的与各个目标日志追踪指令分别对应的目标运行参数构建目标日志文件进行缓存,接着对缓存完的所有目标日志文件进行日志输出,从而对待检测协议栈程序的日志打印操作实现精细化控制效果。印操作实现精细化控制效果。印操作实现精细化控制效果。

【技术实现步骤摘要】
日志文件输出控制方法及装置和协议栈分析设备


[0001]本申请涉及日志管理
,具体而言,涉及一种日志文件输出控制方法及装置和协议栈分析设备。

技术介绍

[0002]随着科学技术的不断发展,协议栈技术因其能够反映不同层级协议之间的文件传输过程而被广泛应用于各大行业,而在协议栈程序开发过程中往往需要在程序功能模块、程序代码分支、软件函数返回值等软件代码关键位置处进行日志打印,以便软件研发人员基于打印出的日志文件对协议栈程序进行问题诊断,并根据问题诊断结果调试修改协议栈程序,使最终开发得到的协议栈程序能够达到期望效果。
[0003]目前,针对协议栈程序的日志打印实施方案通常需要在协议栈程序的各个代码关键位置嵌设一个功能固化的日志打印程序,使该协议栈程序的代码运行到某个代码关键位置时直接跳转到对应日志打印程序直接运行,以打印并直接输出该代码关键位置所对应的日志文件。值得注意的是,这种日志打印实施方案实质无法针对日志打印操作实现精细化控制效果,每次执行日志打印操作时都会对所有代码关键位置分别打印出一份日志文件,严重影响协议栈程序的运行实时性和运行稳定性,同时也会向软件研发人员提供大量无意义的日志文件,影响对协议栈程序的问题诊断效率和问题诊断准确性。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供一种日志文件输出控制方法及装置、协议栈分析设备和可读存储介质,能够在对待检测协议栈程序的日志打印操作实现精细化控制效果的同时,有效确保待检测协议栈程序的运行实时性和运行稳定性,并提升软件研发人员对协议栈程序的问题诊断效率和问题诊断准确性。
[0005]为了实现上述目的,本申请实施例采用的技术方案如下:
[0006]第一方面,本申请提供一种日志文件输出控制方法,应用于协议栈分析设备,其中所述协议栈分析设备运行有待检测协议栈程序,所述待检测协议栈程序的多个代码关键位置分别插入有一个日志追踪指令,每个日志追踪指令在处于禁能状态时按照空指令运行,所述方法包括:
[0007]获取日志追踪使能请求,并将所述日志追踪使能请求所指向的目标日志追踪指令从禁能状态变更为使能状态;
[0008]驱动置于使能状态的所有目标日志追踪指令各自按照匹配的日志钩子函数调用指令运行,得到所述待检测协议栈程序在至少一个目标日志追踪指令各自对应的代码关键位置处的目标运行参数;
[0009]针对得到目标运行参数的每个目标日志追踪指令,基于该目标日志追踪指令所对应的目标运行参数生成匹配的目标日志文件进行缓存;
[0010]在缓存完与所述日志追踪使能请求对应的所有目标日志文件的情况下,对已缓存
的所有目标日志文件进行日志输出。
[0011]在可选的实施方式中,所述协议栈分析设备存储有多个日志追踪管理链表,每个日志追踪管理链表管理有多个日志追踪指令的指令状态;所述将所述日志追踪使能请求所指向的目标日志追踪指令从禁能状态变更为使能状态的步骤,包括:
[0012]对所述日志追踪使能请求进行解析,得到所述日志追踪使能请求所指向的待使能管理链表的身份标识;
[0013]根据所述待使能管理链表的身份标识在所述多个日志追踪管理链表中确定身份标识匹配的目标管理链表;
[0014]将所述目标管理链表所对应的所有日志追踪指令分别作为一个目标日志追踪指令,并将所述目标管理链表所管理的各个日志追踪指令的指令状态由禁能状态变更为使能状态。
[0015]在可选的实施方式中,所述协议栈分析设备存储有所有日志追踪指令各自对应的空指令地址及日志钩子函数地址,所述协议栈分析设备还存储有所有日志追踪指令各自对应的运行参数过滤条件和/或钩子函数触发条件;所述驱动置于使能状态的所有目标日志追踪指令各自按照匹配的日志钩子函数调用指令运行,得到所述待检测协议栈程序在至少一个目标日志追踪指令各自对应的代码关键位置处的目标运行参数的步骤,包括:
[0016]针对置于使能状态的每个目标日志追踪指令,将该目标日志追踪指令当前的运行指令地址从对应的空指令地址变更为适配的日志钩子函数地址;
[0017]驱动该目标日志追踪指令调用所述日志钩子函数地址所对应的目标日志钩子函数获取对应代码关键位置处的协议栈运行参数;
[0018]将与该目标日志追踪指令对应的协议栈运行参数与运行参数过滤条件进行参数匹配,并在所述协议栈运行参数满足所述运行参数过滤条件的情况下,将所述协议栈运行参数作为该目标日志追踪指令所对应的目标运行参数;和/或
[0019]将与该目标日志追踪指令对应的协议栈运行参数与钩子函数触发条件进行参数匹配,并在所述协议栈运行参数满足所述钩子函数触发条件的情况下,调用所述钩子函数触发条件所指向的目标钩子函数获取所述待检测协议栈程序的程序运行参数,而后将所述程序运行参数作为该目标日志追踪指令所对应的目标运行参数。
[0020]在可选的实施方式中,所述方法还包括:
[0021]获取日志追踪禁能请求,并将所述日志追踪禁能请求所指向的待禁能日志追踪指令从使能状态变更为禁能状态;
[0022]驱动置于禁能状态的所有待禁能日志追踪指令各自按照匹配的空指令运行。
[0023]在可选的实施方式中,所述协议栈分析设备存储有多个日志追踪管理链表,每个日志追踪管理链表管理有多个日志追踪指令的指令状态;所述将所述日志追踪禁能请求所指向的待禁能日志追踪指令从使能状态变更为禁能状态的步骤,包括:
[0024]对所述日志追踪禁能请求进行解析,得到所述日志追踪禁能请求所指向的待禁能管理链表的身份标识;
[0025]根据所述待禁能管理链表的身份标识在所述多个日志追踪管理链表中确定身份标识匹配的待处理链表;
[0026]将所述待处理链表所对应的所有日志追踪指令分别作为一个待禁能日志追踪指
令,并将所述待处理链表所管理的各个日志追踪指令的指令状态由使能状态变更为禁能状态。
[0027]在可选的实施方式中,所述协议栈分析设备存储有所有日志追踪指令各自对应的空指令地址及日志钩子函数地址;所述驱动置于禁能状态的所有待禁能日志追踪指令各自按照匹配的空指令运行的步骤,包括:
[0028]针对置于禁能状态的每个待禁能日志追踪指令,将该待禁能日志追踪指令当前的运行指令地址从对应的日志钩子函数地址变更为适配的空指令地址;
[0029]驱动该待禁能日志追踪指令按照所述空指令地址所对应的空指令运行。
[0030]第二方面,本申请提供一种日志文件输出控制装置,应用于协议栈分析设备,其中所述协议栈分析设备运行有待检测协议栈程序,所述待检测协议栈程序的多个代码关键位置分别插入有一个日志追踪指令,每个日志追踪指令在处于禁能状态时按照空指令运行,所述装置包括:
[0031]追踪指令使能模块,用于获取日志追踪使能请求,并将所述日志追踪使能请求所指向的目标日志追踪指令从禁能状态变更为使能状态;
[0032]程序参数获取模块,用于驱动置于使能状态的所有目标日志追踪指令本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种日志文件输出控制方法,其特征在于,应用于协议栈分析设备,其中所述协议栈分析设备运行有待检测协议栈程序,所述待检测协议栈程序的多个代码关键位置分别插入有一个日志追踪指令,每个日志追踪指令在处于禁能状态时按照空指令运行,所述方法包括:获取日志追踪使能请求,并将所述日志追踪使能请求所指向的目标日志追踪指令从禁能状态变更为使能状态;驱动置于使能状态的所有目标日志追踪指令各自按照匹配的日志钩子函数调用指令运行,得到所述待检测协议栈程序在至少一个目标日志追踪指令各自对应的代码关键位置处的目标运行参数;针对得到目标运行参数的每个目标日志追踪指令,基于该目标日志追踪指令所对应的目标运行参数生成匹配的目标日志文件进行缓存;在缓存完与所述日志追踪使能请求对应的所有目标日志文件的情况下,对已缓存的所有目标日志文件进行日志输出。2.根据权利要求1所述的方法,其特征在于,所述协议栈分析设备存储有多个日志追踪管理链表,每个日志追踪管理链表管理有多个日志追踪指令的指令状态;所述将所述日志追踪使能请求所指向的目标日志追踪指令从禁能状态变更为使能状态的步骤,包括:对所述日志追踪使能请求进行解析,得到所述日志追踪使能请求所指向的待使能管理链表的身份标识;根据所述待使能管理链表的身份标识在所述多个日志追踪管理链表中确定身份标识匹配的目标管理链表;将所述目标管理链表所对应的所有日志追踪指令分别作为一个目标日志追踪指令,并将所述目标管理链表所管理的各个日志追踪指令的指令状态由禁能状态变更为使能状态。3.根据权利要求1所述的方法,其特征在于,所述协议栈分析设备存储有所有日志追踪指令各自对应的空指令地址及日志钩子函数地址,所述协议栈分析设备还存储有所有日志追踪指令各自对应的运行参数过滤条件和/或钩子函数触发条件;所述驱动置于使能状态的所有目标日志追踪指令各自按照匹配的日志钩子函数调用指令运行,得到所述待检测协议栈程序在至少一个目标日志追踪指令各自对应的代码关键位置处的目标运行参数的步骤,包括:针对置于使能状态的每个目标日志追踪指令,将该目标日志追踪指令当前的运行指令地址从对应的空指令地址变更为适配的日志钩子函数地址;驱动该目标日志追踪指令调用所述日志钩子函数地址所对应的目标日志钩子函数获取对应代码关键位置处的协议栈运行参数;将与该目标日志追踪指令对应的协议栈运行参数与运行参数过滤条件进行参数匹配,并在所述协议栈运行参数满足所述运行参数过滤条件的情况下,将所述协议栈运行参数作为该目标日志追踪指令所对应的目标运行参数;和/或将与该目标日志追踪指令对应的协议栈运行参数与钩子函数触发条件进行参数匹配,并在所述协议栈运行参数满足所述钩子函数触发条件的情况下,调用所述钩子函数触发条件所指向的目标钩子函数获取所述待检测协议栈程序的程序运行参数,而后将所述程序运行参数作为该目标日志追踪指令所对应的目标运行参数。
4.根据权利要求1

3中任意一项所述的方法,其特征在于,所述方法还包括:获取日志追踪禁能请求,并将所述日志追踪禁能请求所指向的待禁能日志追踪指令从使能状态变更为禁能状态;驱动置于禁能状态的所有待禁能日志追踪指令各自按照匹配的空指令运行。5.根...

【专利技术属性】
技术研发人员:矫龙
申请(专利权)人:法奥意威苏州机器人系统有限公司
类型:发明
国别省市:

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

1