System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于ARMv8的操作系统调测系统技术方案_技高网

一种基于ARMv8的操作系统调测系统技术方案

技术编号:40679234 阅读:4 留言:0更新日期:2024-03-18 19:18
本发明专利技术公开了一种基于ARMv8的操作系统调测系统,包括前端模块和代理模块,代理模块嵌入基于ARMv8的操作系统内核,包含调试子模块和追踪子模块,前端模块是操作系统调测系统中与用户交互的接口;调试子模块用于执行调试指令,实现操作系统内核源码级调试;追踪子模块用于执行追踪指令,实现内核代码执行过程中的追踪事件记录。本发明专利技术通过调试与追踪两大功能模块实现操作系统内核源码级调试以及系统软硬件事件的追踪,帮助用户快速排查错误,对系统性能进行测试和优化。

【技术实现步骤摘要】

本专利技术属于操作系统调测,更为具体地讲,涉及一种基于armv8的操作系统调测系统。


技术介绍

1、调试是软件开发流程中不可或缺的步骤,调试过程能够帮助开发人员分析、定位并修复实现过程中的错误。尤其是对于操作系统来说,操作系统的正确性直接决定了上层应用是否能正常运行。一般来说,将那些不影响被调试程序运行的调试步骤分割出来,称为追踪,而以下所称的“调试”则专指那些能够打断被调试程序的调试技术。

2、调试:又称为侵入式调试,所用到的工具称为调试器,是一种能够观察和修改程序运行状态的工具。例如常用的gdb(gnu debugger)就属于用户态程序的调试器。gdb是一个用户空间调试器,主要用于调试应用程序和用户态进程。gdb允许开发人员查看程序的内部状态,设置断点,单步执行代码,观察变量值,检查堆栈跟踪以及其他调试任务。gdb通过利用操作系统提供的ptrace系统调用来控制用户程序的执行。当开发人员在gdb中启动调试会话并指定目标程序时,gdb会使用ptrace系统调用附加到目标程序。这意味着gdb成为目标程序的父进程,并获得对目标程序的控制权限。一旦附加成功,gdb可以通过发送信号(通常是sigint)来中断目标程序的执行。这将导致目标程序立即停止在当前执行的指令上,使开发人员能够检查其状态。通过ptrace系统调用传递不同的参数,能够实现gdb的读取和修改寄存器和内存、单步执行、设置断点等功能。

3、追踪:又称为非侵入式调试,指的是在程序运行的过程中记录某些事件的发生,但理论上并不影响程序的正常执行。追踪可细分为硬件追踪和软件追踪,分别关心软件执行中发生的硬件事件和软件事件。常见的硬件追踪事件包括:分支跳转、tlb miss、cachemiss等,常见的软件追踪事件包括:调度发生、进程创建、页表修改等附有特定含义的事件。目前常见的追踪工具包括用于linux内核的ftrace、kprobe等。

4、在现有的调试追踪工具中,gdb的不足之初在于只能对应用程序进行调试,因为其依赖内核提供的权限。有了kgdb之后,虽然能够实现对操作系统内核的调试,但其本身依赖gdb作为前端界面,并且部署kgdb必须有额外一台host参与,负责分发命令和回显信息。此外,操作系统的调试和追踪不同于一般的应用程序,没有下层软件能对操作系统有完全控制能力,所以需要针对不同的硬件架构设计针对性的调试和追踪机制。


技术实现思路

1、本专利技术的目的在于克服现有技术的不足,提供一种基于armv8的操作系统调测系统,包含调试与追踪两大功能模块,实现操作系统内核源码级调试以及系统软硬件事件的追踪,帮助用户快速排查错误,对系统性能进行测试和优化。

2、为了实现上述专利技术目的,本专利技术基于armv8的操作系统调测系统包括前端模块和代理模块,代理模块嵌入基于armv8的操作系统内核,包含调试子模块和追踪子模块,其中:

3、前端模块是操作系统调测系统与用户交互的接口,存在两个工作模式:调试模式和追踪模式;

4、当前端模块工作在调试模式时,用户向前端模块输入调试指令,调试指令包括断点指令,观察点指令和单步执行指令;其中:

5、断点指令用于为某条指令地址设置断点;

6、观察点指令用于将观察点与某个内存地址绑定;

7、单步执行指令用于强制使得操作系统程序执行特定数量的指令;

8、前端模块将调试指令转发至调试子模块,在接收到调试子模块移交的操作系统控制权后,向用户提供控制界面供用户对操作系统进行控制;

9、当前端模块工作在追踪模式时,用户向前端模块输入追踪指令,包括硬件追踪指令和软件追踪指令,硬件追踪指令中包含某个硬件行为的指定信息和追踪条件,软件追踪指令包括期望追踪点触发的回调函数;如果追踪指令为硬件追踪指令,则前端模块将追踪指令发送至追踪子模块,如果追踪指令为软件追踪指令,则将软件追踪指令转换为汇编指令后发送至追踪子模块;然后接收追踪子模块反馈的追踪事件结果,按照预定分析策略进行分析后向用户反馈分析结果;

10、调试子模块用于执行调试指令,实现操作系统内核源码级调试;调试子模块包括指令解析组件,断点组件,观察点组件,单步执行组件和控制权切换组件,其中:

11、指令解析组件用于接收调试指令并进行解析,如果为断点控制指令则发送给断点组件,如果为观察点控制指令则发送给观察点组件,如果为单步执行指令则发送给单步执行组件;

12、断点组件用于在接收到断点控制指令后,将断点写入armv8中的硬件断点寄存器,然后对断点进行监控,如果发生断点异常则向控制权切换组件发送断点异常消息;

13、观察点组件用于在接收到观察点控制指令后,将观察点写入armv8中的硬件观察点寄存器,然后对观察点进行监控,如果发生观察点异常则向控制权切换组件发送观察点异常消息;

14、单步执行组件用于在接收单步执行指令后,将pstate.ss标志位插入操作系统中对应程序,强制使得该程序执行特定数量的指令,然后暂停执行流,控制权切换组件发送执行流暂停消息;

15、控制权切换组件在接收到断点异常消息、观察点异常消息或执行流暂停消息后,将操作系统中对应位置上下文中的寄存器进行保存,然后将操作系统控制权通过前端模块移交给前端模块;

16、追踪子模块用于执行追踪指令,实现内核代码执行过程中的追踪事件记录;当追踪指令为硬件追踪指令,追踪子模块调用armv8处理器提供的etm组件和pmu组件实现硬件追踪;当追踪指令为软件追踪指令,追踪子模块令操作系统将每次函数调用前所插入跳转指令的跳转地址修改为软件追踪指令中的指令段地址,实现软件追踪;追踪子模块将追踪事件结果反馈至前端模块。

17、本专利技术基于armv8的操作系统调测系统,包括前端模块和代理模块,代理模块嵌入基于armv8的操作系统内核,包含调试子模块和追踪子模块,前端模块是操作系统调测系统中与用户交互的接口;调试子模块用于执行调试指令,实现操作系统内核源码级调试;追踪子模块用于执行追踪指令,实现内核代码执行过程中的追踪事件记录。

18、本专利技术具有以下有益效果:

19、1)本专利技术无需借助外部硬件,利用armv8体系结构提供的特性,纯软件实现操作系统调试和追踪功能;

20、2)传统的调试和追踪工具通常采用不同的交互接口,相互协作非常复杂,本专利技术为调试和追踪功能提供统一的用户界面和操作接口,便于用户操作;

21、3)现有的操作系统内核调试方法仅支持远程布局,而本专利技术支持远程调试和本地调试两种布局,在不方便添加host或者通信接口缺少的情况下,使用本地布局能够更直接的解决调试、追踪问题。

本文档来自技高网...

【技术保护点】

1.一种基于ARMv8的操作系统调测系统,其特征在于,包括前端模块和代理模块,代理模块嵌入基于ARMv8的操作系统内核,包含调试子模块和追踪子模块,其中:

2.根据权利要求1所述的操作系统调测系统,其特征在于,所述前端模块向用户提供三种控制方式:内存读写,寄存器读写和栈回溯,其中:

3.根据权利要求1所述的操作系统调测系统,其特征在于,所述前端模块对事件信息的分析策略包括:

4.根据权利要求1所述的操作系统调测系统,其特征在于,所述追踪子模块采用多级缓冲结构,具体实现方法为:

5.根据权利要求1所述的操作系统调测系统,其特征在于,所述前端模块和代理模块采用本地布局模式,前端模块和代理模块均位于目标操作系统所在主机中,前端模块和代理模块共享同一块物理内存,采用共享内存的方式通信。

6.根据权利要求1所述的操作系统调测系统,其特征在于,所述前端模块和代理模块采用远程布局模式,代理模块位于目标操作系统所在主机中,前端模块则位于其他主机中,前端模块和代理模块底层通过网络或串口连接作为通信的媒介,代理模块和前端模块之间通信的原始数据会按照预定通信协议进行包装后发送。

...

【技术特征摘要】

1.一种基于armv8的操作系统调测系统,其特征在于,包括前端模块和代理模块,代理模块嵌入基于armv8的操作系统内核,包含调试子模块和追踪子模块,其中:

2.根据权利要求1所述的操作系统调测系统,其特征在于,所述前端模块向用户提供三种控制方式:内存读写,寄存器读写和栈回溯,其中:

3.根据权利要求1所述的操作系统调测系统,其特征在于,所述前端模块对事件信息的分析策略包括:

4.根据权利要求1所述的操作系统调测系统,其特征在于,所述追踪子模块采用多级缓冲结构,具体实现方法为:...

【专利技术属性】
技术研发人员:肖堃王璐李蒙罗蕾陈丽蓉
申请(专利权)人:电子科技大学
类型:发明
国别省市:

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

1