[发明专利]一种linux内核跟踪调试与修复问题的方法在审

专利信息
申请号: 201510330712.4 申请日: 2015-06-15
公开(公告)号: CN104915209A 公开(公告)日: 2015-09-16
发明(设计)人: 李智荣 申请(专利权)人: 上海斐讯数据通信技术有限公司
主分类号: G06F9/44 分类号: G06F9/44
代理公司: 暂无信息 代理人: 暂无信息
地址: 201616 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 linux 内核 跟踪 调试 修复 问题 方法
【说明书】:

技术领域

发明涉及以太网交换机技术领域,尤其涉及一种linux内核跟踪调试与修复问题的方法。

背景技术

当前潜入式linux涉及内核的问题调试手段主要是重新编译整个内核或者使用KGDB(kernel GNU Debugger)软件。重新编译整个内核耗时比较长,而KGDB软件搭建环境比较繁杂且需要内核支持。更为重要的是这两种方法需要升级设备系统版本,然后重启动系统才能修复问题,这在某些情况下是不允许的,如某些客户重要网络不允许断网。

现有的涉及嵌入式linux内核的问题跟踪、调试及修复的方法主要存在以下问题:重新编译整个linux内核需要重新烧录、重启动设备系统且耗时比较长。使用KGDB除了搭建环境复杂之外,无法支持改动比较大的修改。

发明内容

本发明需解决的技术问题是克服上述的不足,提供一种linux内核跟踪调试与修复问题的方法,包括:

修改问题函数,在问题函数原函数名前添加前缀,定义为修复函数;

创建驱动模块;

把驱动模块安装到系统设备中;

在驱动模块的初始化函数里面查找模块内部定义的带有所述前缀的修复函数;

在内核符号表中查找问题函数与修复函数的函数地址,修改问题函数的入口指令,跳转到修复函数执行。

进一步的,所述的前缀为prefix_。

进一步的,所述创建驱动模块的步骤具体为编译所述修复函数链接为驱动模块。

进一步的,所述驱动模块命名为linux_kernel.ko。

进一步的,所述方法还包括:

在修改指令前先将旧的指令保存到一个数组中;

卸载驱动模块时从所述数组中恢复修改前的指令,恢复原来函数的调用流程。

采用本发明的技术方案后,将问题函数修改代码编译链接成一个linux驱动模块,在驱动模块内标识需要修改的内核函数,在linux内核加载驱动模块时,查找到所述驱动模块所标识的内核内部函数,然后修改这个函数的入口指令,跳转到我们的驱动模块定义的修复函数执行,这样便可以在这个修复函数里边跟踪、调试及修复问题,解决了以往调试修复困难的问题,提高了效率。

附图说明

图1是本发明提供的linux内核跟踪调试与修复问题的方法示意图;

图2是本发明提供的linux内核原函数调用关系示意图;

图3是本发明提供的linux内核函数调用关系示意图。

具体实施方式

为了使本领域相关技术人员更好地理解本发明的技术方案,下面将结合本发明实施方式的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。

下面结合附图和实施方式对本发明作进一步说明。

参阅图1,本发明提供的一种linux内核跟踪调试与修复问题的方法,包括下列步骤:

步骤S100,修改问题函数,在问题函数原函数名前添加前缀,定义为修复函数;

如图2所示,远linux内核的函数调用流程为:function_a→function_b→function_c。现在假如function_b出现问题需要修复调试,则将问题函数function_b拷贝到一个新的原文件,修改所述问题函数function_b。修改完成后,重新命名,在原函数名前加前缀,本实施例中,前缀为prefix_,即prefix_function_b,定义prefix_function_b为修复函数。

步骤S200,创建驱动模块;

具体的,编译上述修复函数prefix_function_b链接为驱动模块,将驱动模块命名为linux_kernel.ko。

步骤S300,把驱动模块安装到系统设备中;

把步骤S200生成的linux_kernel.ko安装到系统设备中。

步骤S400,在驱动模块的初始化函数里面查找模块内部定义的带有所述前缀的修复函数;

在linux_kernel.ko的初始化函数里面查找驱动模块内部定义的,名字带有步骤S100中的前缀的函数,本实施例中,查找到prefix_function_b,通过前缀“prefix_”便会认为prefix_function_b是用来修复函数function_b的。

步骤S500,在内核符号表中查找问题函数与修复函数的函数地址,修改问题函数的入口指令,跳转到修复函数执行。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510330712.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top