RTOS远程调试与内核跟踪方法、装置、设备和存储介质与流程

摘要: 本技术涉及计算机,特别是涉及一种rtos远程调试与内核跟踪方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。背景技术:1、随着工业物联网、智能穿戴、车...
RTOS远程调试与内核跟踪方法、装置、设备和存储介质与流程

本技术涉及计算机,特别是涉及一种rtos远程调试与内核跟踪方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

背景技术:

1、随着工业物联网、智能穿戴、车载终端、边缘控制设备等嵌入式场景快速普及,freertos、rt-thread、uc/os、harmonyos lite等实时操作系统(real-time operatingsystem,rtos)成为小型资源受限mcu(microcontroller unit,微控制单元)设备的核心调度底座。在设备研发调试、量产线上故障排查阶段,开发者需要采集rtos内核调度、中断响应、内存分配等全流程运行轨迹,定位任务阻塞、优先级反转、栈溢出、内存泄漏、中断风暴等时序类隐性故障,内核跟踪与远程调试工具是保障嵌入式设备稳定性的关键支撑手段。

2、当前行业内主流rtos调试与内核跟踪方案分为本地硬件调试、本地软件跟踪、简易远程调试三类,但各类方案在实时性、侵入性、远程运维、资源开销、安全管控、自动化故障分析层面均存在明显短板,难以适配量产大规模终端的线上运维场景。比如,传统内核跟踪手段侵入性高,严重破坏rtos实时调度时序,故障复现难度大;传统本地调试手段包含串口printf(print formatted,格式化打印)日志打印、内核静态钩子、jtag(joint testaction group,联合测试行动组)硬件断点三类,串口打印会持续抢占系统总线与任务时间片,改变原始任务调度时序,极易掩盖仅在特定时序下触发的偶发死锁、优先级反转问题;内核静态钩子需要修改rtos内核源码、重新编译全量固件,针对多型号、多版本 rtos设备移植成本极高,无法在已量产不允许固件升级的终端临时开启跟踪;jtag硬件断点调试会强制暂停cpu(central processing unit,中央处理单元)运行,中断连续业务数据流,仅能捕获静态瞬时状态,无法完整记录毫秒级连续调度毛刺、高频中断过载等动态异常行为,难以定位偶发稳定性问题。因此,传统技术中,rtos调试与内核跟踪的侵入性较高。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够降低rtos调试与内核跟踪的侵入性的rtos远程调试与内核跟踪方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

2、第一方面,本技术提供了一种rtos远程调试与内核跟踪方法,包括:

3、在rtos设备上电后,初始化内存双环形缓冲区,加载预设的无侵入静态跟踪点沙箱,按需注册内核事件动态探针,通过预设的采集函数与跟踪开销实时自检函数,执行内核事件采集点位的按需挂载;

4、对通过所述内核事件动态探针捕获到的内核事件执行本地过滤采样处理,对筛选出的合格内核事件采用轻量编码写入所述内存双环形缓冲区中的一级高速中断缓存;所述一级高速中断缓存中存储有所述合格内核事件经过轻量编码后形成的跟踪二进制流;

5、通过搭载的轻量调试代理与远程服务器完成tls握手与身份鉴权,以建立与所述远程服务器之间的安全长连接,并分块上报所述一级高速中断缓存内的跟踪二进制流至所述远程服务器;

6、其中,所述远程服务器用于通过多连接协程,并发接收多个rtos设备的基于跟踪二进制流分块得到的跟踪数据包;对所述跟踪数据包进行校验分片重组,将重组得到的二进制事件写入时序数据库中进行存储;加载对应rtos设备的固件符号表,解析所述时序数据库中存储的所述二进制事件,调用内置的计算函数批量生成调度性能量化指标,并根据预设阈值判定模型对解析得到的内核事件进行异常识别,得到对应的异常标签;将所述调度性能量化指标与所述异常标签输入预设的故障规则匹配推理模型,得到对应的判定故障根因,并生成可视化结构化数据;所述可视化结构化数据包括时序时间线视图与性能统计视图。

7、在其中一个实施例中,所述在rtos设备上电后,初始化内存双环形缓冲区,包括:

8、在rtos设备上电后,在所述rtos设备的rtos堆静态划分出两块独立缓存内存,得到内存双环形缓冲区;

9、其中,所述两块独立缓存内存包括一级高速中断缓存和二级持久异步缓存,所述一级高速中断缓存用于中断上下文零拷贝写入事件,所述二级持久异步缓存用于供低优先级跟踪任务异步搬运事件;缓存结构体采用原子变量做读写索引。

10、在其中一个实施例中,所述预设的无侵入静态跟踪点沙箱仅预留跳转入口空点位,且提供两套无阻塞api,支持运行时远程指令动态增删采集探针;所述预设的无侵入静态跟踪点沙箱执行逻辑时仅进行数据拷贝与原子索引自增,且内置三个组件;所述三个组件包括:全局探针哈希链表,原子读写两级环形缓存和高精度计时读取汇编函数。

11、在其中一个实施例中,所述对通过所述内核事件动态探针捕获到的内核事件执行本地过滤采样处理,对筛选出的合格内核事件采用轻量编码写入所述内存双环形缓冲区中的一级高速中断缓存,包括:

12、当触发挂载的跟踪点探针时,通过所述预设的无侵入静态跟踪点沙箱基于原子写入操作,采集捕获到的内核事件的事件原始字段;所述事件原始字段包括时间戳、事件类型枚举、任务标识、中断编号、栈剩余字节和内存操作大小;

13、通过内置的三层串行过滤函数,并基于所述事件原始字段,从捕获到的内核事件中筛选出合格内核事件;所述三层串行过滤函数包括任务优先级过滤函数、高频事件降采样函数和任务白名单过滤函数;

14、通过预设的编码模块,对所述合格内核事件进行编码处理,并写入所述内存双环形缓冲区中的一级高速中断缓存。

15、在其中一个实施例中,所述方法还包括:

16、当判断一级高速中断缓存写索引将追上读索引时,触发溢出保护逻辑,在事件包头部写入全局溢出标记,并上报至所述远程服务器,使所述远程服务器接收到所述全局溢出标记后,提示开发者当前缓存容量不足,并向所述rtos设备下发远程指令,以扩容二级持久异步缓存;

17、根据所述rtos设备初始化所创建的优先级最低的搬运任务,无阻塞循环读取所述一级高速中断缓存中的有效事件,并批量拷贝至所述二级持久异步缓存中。

18、在其中一个实施例中,所述分块上报所述一级高速中断缓存内的跟踪二进制流至所述远程服务器,包括:

19、从所述一级高速中断缓存内提取出所述跟踪二进制流;

20、确定与所述跟踪二进制流匹配的目标分块方式,并按照所述目标分块方式对所述跟踪二进制流进行分块处理,得到相应的跟踪数据包;

21、将所述跟踪数据包上报至所述远程服务器。

22、第二方面,本技术还提供了一种rtos远程调试与内核跟踪装置,包括:

23、函数执行模块,用于在rtos设备上电后,初始化内存双环形缓冲区,加载预设的无侵入静态跟踪点沙箱,按需注册内核事件动态探针,通过预设的采集函数与跟踪开销实时自检函数,执行内核事件采集点位的按需挂载;

24、事件编码模块,用于对通过所述内核事件动态探针捕获到的内核事件执行本地过滤采样处理,对筛选出的合格内核事件采用轻量编码写入所述内存双环形缓冲区中的一级高速中断缓存;所述一级高速中断缓存中存储有所述合格内核事件经过轻量编码后形成的跟踪二进制流;

25、连接建立模块,用于通过搭载的轻量调试代理与远程服务器完成tls握手与身份鉴权,以建立与所述远程服务器之间的安全长连接,并分块上报所述一级高速中断缓存内的跟踪二进制流至所述远程服务器;

26、其中,所述远程服务器用于通过多连接协程,并发接收多个rtos设备的基于跟踪二进制流分块得到的跟踪数据包;对所述跟踪数据包进行校验分片重组,将重组得到的二进制事件写入时序数据库中进行存储;加载对应rtos设备的固件符号表,解析所述时序数据库中存储的所述二进制事件,调用内置的计算函数批量生成调度性能量化指标,并根据预设阈值判定模型对解析得到的内核事件进行异常识别,得到对应的异常标签;将所述调度性能量化指标与所述异常标签输入预设的故障规则匹配推理模型,得到对应的判定故障根因,并生成可视化结构化数据;所述可视化结构化数据包括时序时间线视图与性能统计视图。

27、第三方面,本技术还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

28、在rtos设备上电后,初始化内存双环形缓冲区,加载预设的无侵入静态跟踪点沙箱,按需注册内核事件动态探针,通过预设的采集函数与跟踪开销实时自检函数,执行内核事件采集点位的按需挂载;

29、对通过所述内核事件动态探针捕获到的内核事件执行本地过滤采样处理,对筛选出的合格内核事件采用轻量编码写入所述内存双环形缓冲区中的一级高速中断缓存;所述一级高速中断缓存中存储有所述合格内核事件经过轻量编码后形成的跟踪二进制流;

30、通过搭载的轻量调试代理与远程服务器完成tls握手与身份鉴权,以建立与所述远程服务器之间的安全长连接,并分块上报所述一级高速中断缓存内的跟踪二进制流至所述远程服务器;

31、其中,所述远程服务器用于通过多连接协程,并发接收多个rtos设备的基于跟踪二进制流分块得到的跟踪数据包;对所述跟踪数据包进行校验分片重组,将重组得到的二进制事件写入时序数据库中进行存储;加载对应rtos设备的固件符号表,解析所述时序数据库中存储的所述二进制事件,调用内置的计算函数批量生成调度性能量化指标,并根据预设阈值判定模型对解析得到的内核事件进行异常识别,得到对应的异常标签;将所述调度性能量化指标与所述异常标签输入预设的故障规则匹配推理模型,得到对应的判定故障根因,并生成可视化结构化数据;所述可视化结构化数据包括时序时间线视图与性能统计视图。

32、第四方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

33、在rtos设备上电后,初始化内存双环形缓冲区,加载预设的无侵入静态跟踪点沙箱,按需注册内核事件动态探针,通过预设的采集函数与跟踪开销实时自检函数,执行内核事件采集点位的按需挂载;

34、对通过所述内核事件动态探针捕获到的内核事件执行本地过滤采样处理,对筛选出的合格内核事件采用轻量编码写入所述内存双环形缓冲区中的一级高速中断缓存;所述一级高速中断缓存中存储有所述合格内核事件经过轻量编码后形成的跟踪二进制流;

35、通过搭载的轻量调试代理与远程服务器完成tls握手与身份鉴权,以建立与所述远程服务器之间的安全长连接,并分块上报所述一级高速中断缓存内的跟踪二进制流至所述远程服务器;

36、其中,所述远程服务器用于通过多连接协程,并发接收多个rtos设备的基于跟踪二进制流分块得到的跟踪数据包;对所述跟踪数据包进行校验分片重组,将重组得到的二进制事件写入时序数据库中进行存储;加载对应rtos设备的固件符号表,解析所述时序数据库中存储的所述二进制事件,调用内置的计算函数批量生成调度性能量化指标,并根据预设阈值判定模型对解析得到的内核事件进行异常识别,得到对应的异常标签;将所述调度性能量化指标与所述异常标签输入预设的故障规则匹配推理模型,得到对应的判定故障根因,并生成可视化结构化数据;所述可视化结构化数据包括时序时间线视图与性能统计视图。

37、第五方面,本技术还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

38、在rtos设备上电后,初始化内存双环形缓冲区,加载预设的无侵入静态跟踪点沙箱,按需注册内核事件动态探针,通过预设的采集函数与跟踪开销实时自检函数,执行内核事件采集点位的按需挂载;

39、对通过所述内核事件动态探针捕获到的内核事件执行本地过滤采样处理,对筛选出的合格内核事件采用轻量编码写入所述内存双环形缓冲区中的一级高速中断缓存;所述一级高速中断缓存中存储有所述合格内核事件经过轻量编码后形成的跟踪二进制流;

40、通过搭载的轻量调试代理与远程服务器完成tls握手与身份鉴权,以建立与所述远程服务器之间的安全长连接,并分块上报所述一级高速中断缓存内的跟踪二进制流至所述远程服务器;

41、其中,所述远程服务器用于通过多连接协程,并发接收多个rtos设备的基于跟踪二进制流分块得到的跟踪数据包;对所述跟踪数据包进行校验分片重组,将重组得到的二进制事件写入时序数据库中进行存储;加载对应rtos设备的固件符号表,解析所述时序数据库中存储的所述二进制事件,调用内置的计算函数批量生成调度性能量化指标,并根据预设阈值判定模型对解析得到的内核事件进行异常识别,得到对应的异常标签;将所述调度性能量化指标与所述异常标签输入预设的故障规则匹配推理模型,得到对应的判定故障根因,并生成可视化结构化数据;所述可视化结构化数据包括时序时间线视图与性能统计视图。

42、上述rtos远程调试与内核跟踪方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,在rtos设备上电后,初始化内存双环形缓冲区,加载预设的无侵入静态跟踪点沙箱,按需注册内核事件动态探针,通过预设的采集函数与跟踪开销实时自检函数,执行内核事件采集点位的按需挂载;接着对通过内核事件动态探针捕获到的内核事件执行本地过滤采样处理,对筛选出的合格内核事件采用轻量编码写入内存双环形缓冲区中的一级高速中断缓存;一级高速中断缓存中存储有合格内核事件经过轻量编码后形成的跟踪二进制流;最后通过搭载的轻量调试代理与远程服务器完成tls握手与身份鉴权,以建立与远程服务器之间的安全长连接,并分块上报一级高速中断缓存内的跟踪二进制流至远程服务器;其中,远程服务器用于通过多连接协程,并发接收多个rtos设备的基于跟踪二进制流分块得到的跟踪数据包;对跟踪数据包进行校验分片重组,将重组得到的二进制事件写入时序数据库中进行存储;加载对应rtos设备的固件符号表,解析时序数据库中存储的二进制事件,调用内置的计算函数批量生成调度性能量化指标,并根据预设阈值判定模型对解析得到的内核事件进行异常识别,得到对应的异常标签;将调度性能量化指标与异常标签输入预设的故障规则匹配推理模型,得到对应的判定故障根因,并生成可视化结构化数据;可视化结构化数据包括时序时间线视图与性能统计视图。这样,通过预设无侵入静态跟踪点沙箱预埋采集点位,无需修改rtos内核原生源码、无需暂停处理器内核运行即可完成内核事件采集挂载,彻底规避了传统printf打印、jtag断点调试、内核源码插桩等方式带来的高侵入性问题,有效避免跟踪采集操作扰动rtos内核原生调度时序与运行状态;同时通过本地过滤采样、轻量编码、双环形缓存分级存储的轻量化采集处理逻辑,大幅降低内核事件采集、编码、存储过程中的cpu开销与系统延时,实现跟踪开销实时自检可控,保障rtos系统实时性与运行稳定性;此外,依托安全长连接分块上报、服务端并发解析与智能故障推理的远程调试架构,实现了内核事件无侵入采集、可靠传输、精准分析与可视化呈现,无需设备本地高频调试运算与人工干预,极大降低了rtos内核跟踪与设备调试的操作侵入性与资源占用开销,有效解决了传统调试方式易引发系统时序紊乱、调试扰动大、无法适配在线长时间跟踪调试的问题,显著降低了rtos调试与内核跟踪的侵入性,同时大幅提升了rtos系统内核跟踪的实时性、稳定性与调试精准度。