The invention provides a dynamic pile driving system for the Linux kernel module, which involves the testing technology of the Linux kernel development unit. The invention is mainly composed of 2 parts: kernel redirection module (1); test case control module (2), in a function address piling, redirection module based on the basis of the original kernel function address, piling piling, piling function address and control code block to generate a dynamic framework to redirect the code. A complete piling function call parameters of control, copy, copy, return value, test case control module (2) through the kernel redirection module (1) implementation of unit test. It is difficult for the unit test and system debugging to be difficult to replace the function piling after the kernel module is loaded and run.
【技术实现步骤摘要】
一种linux内核模块动态打桩的系统
本专利技术涉及Linux内核开发单元测试技术,尤其涉及一种linux内核模块动态打桩的系统。
技术介绍
软件开发活动中单元测试是必不可少的,单元测试可以有效地提高软件质量,降低后期软件维护成本,对关键代码进行单元测试也是软件开发项目的基本要求。不同于应用软件开发,目前linux内核驱动开发,由于linux内核系统的高度耦合、复杂以及技术特点,造成对运行的内核模块进行单元测试难度较大。开展单元测试最重要的工作就是对被测函数进行打桩,模拟故障异常场景,内核的技术特点,造成对内核模块进行打桩会有很大的风险和难度。
技术实现思路
为了解决以上问题,本专利技术提出一种linux内核模块动态打桩的系统,该系统提供了一种在内核态对加载运行的内核模块进行函数替换打桩、前打桩、后打桩的有效方法,利用函数打桩内核开发人员就能够对内核驱动完成函数级别的单元测试。本专利技术的技术方案是:一种linux内核模块动态打桩的系统,主要用于linux内核驱动开发过程,解决内核模块加载运行后较难进行函数打桩替换,导致单元测试、系统调试很困难的情况。该系统可用在linux内核驱动开发过程,其通过动态重定向技术对已经加载运行的被测内核模块进行动态打桩、用例执行控制。该系统主要由2部分组成:内核重定向模块(1);测试用例控制模块(2);测试用例控制模块(2)再通过内核重定向模块(1)实现单元测试。在对某一函数地址进行打桩时,内核重定向模块(1)依据打桩原函数地址、打桩函数地址、打桩方式等,生成一个动态重定向框架的控制代码块,该代码块完成打桩函数的调用控制、参数复 ...
【技术保护点】
一种linux内核模块动态打桩的系统,其特征在于,主要由2部分组成:内核重定向模块(1);测试用例控制模块(2),在对某一函数地址进行打桩时,内核重定向模块(1)依据打桩原函数地址、打桩函数地址、打桩方式,生成一个动态重定向框架的控制代码块,该代码块完成打桩函数的调用控制、参数复制、返回值复制,测试用例控制模块(2)再通过内核重定向模块(1)实现单元测试;所述的内核重定向模块(1),Linux内核驱动加载运行后,所有内核模块共享系统内核符号表及地址空间;内核可以获取代码段进行读写执行权限;通过动态生成重定向机器指令完成函数的跳转。
【技术特征摘要】
1.一种linux内核模块动态打桩的系统,其特征在于,主要由2部分组成:内核重定向模块(1);测试用例控制模块(2),在对某一函数地址进行打桩时,内核重定向模块(1)依据打桩原函数地址、打桩函数地址、打桩方式,生成一个动态重定向框架的控制代码块,该代码块完成打桩函数的调用控制、参数复制、返回值复制,测试用例控制模块(2)再通过内核重定向模块(1)实现单元测试;所述的内核重定向模块(1),Linux内核驱动加载运行后,所有内核模块共享系统内核符号表及地址空间;内核可以获取代码段进...
【专利技术属性】
技术研发人员:李雪生,张延良,
申请(专利权)人:浪潮电子信息产业股份有限公司,
类型:发明
国别省市:山东,37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。