一种基于日志打点的Linux内核调试方法

文档序号:8339524阅读:328来源:国知局
一种基于日志打点的Linux内核调试方法
【技术领域】
[0001] 本发明涉及一种Linux内核调试方法,具体地说是一种基于日志打点的Linux内 核调试方法。
【背景技术】
[0002] Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX 的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用 程序和网络协议。它支持32位和64位硬件。Linux继承了 Unix以网络为核心的设计思 想,是一个性能稳定的多用户网络操作系统。Linux内核是一个一体化内核(monolithic kernel)系统。"内核"指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的 系统软件。
[0003] Linux内核开发由来已久,但是对于内核的开发调试一直是开发人员比较困难的 问题。就目前技术来说,内核调试都是通过直接输出特定的信息定位程序的运行位置,开发 人员需要不断的添加各种信息来跟踪程序的运行。信息输出后往往是一堆信息数据,在输 出信息中查找特定的信息比较困难,并且随着添加信息的增多,查找起来更加困难。另一方 面,开发人员需要针对不同的位置添加不同的输出信息,稍有雷同对于定位就带来了不可 估计的工作量。
[0004] 因此,采用一种简单有效的Linux内核调试方法很重要。

【发明内容】

[0005] 本发明的技术任务是提供一种提高了开发人员的工作效率和定位的准性,降低了 开发难度,缩短了开发周期的一种基于日志打点的Linux内核调试方法。
[0006] 本发明的技术任务是按以下方式实现的: 一种基于日志打点的Linux内核调试方法,使用打印日志的方法确定内核程序的运行 位置,通过添加相关的日志输出接口,根据输出日志的相关信息来实现跟踪内核程序运行 的全过程;主要由两部分组成:(1)、自动修改顺序号并生成与函数的对应关系,以文件形 式保存;(2)、打印日志输出顺序号和当前时间。
[0007] 所述的(1)中,通过dmesg或tail - f/var/log/messages查看;通过输出日志顺 序号,来确定对应的程序位置;日志顺序号通过手动添加来完成,添加时顺序号定义为〇, 添加完毕后,通过运行日志统计功能程序,修改内核中的日志顺序号并生成一个.map文 件,其中保存顺序号与函数的对应关系。
[0008] 所述的(2)中,日志输出中的时间是用于标记当前函数,通过该标记查找当前日 志处于哪一个函数;当前时间输出信息按时间排序后,对应程序的执行顺序。
[0009] 流程步骤如下: (1) 、在内核代码中添加日志输出功能,顺序号定义为〇; (2) 、运行日志统计功能程序,对内核代码中的顺序号进行替换; (3)、把生成的.map文件的内容和内核运行输出的日志分别拷贝至Excel表格,通过 Excel表格的vlookup函数即可把输出的信息对应到相应的函数。
[0010] 本发明的一种基于日志打点的Linux内核调试方法具有以下优点: 1、 在Linux内核中添加日志信息,便可以随时打开调试开关跟踪内核程序的运行状态 和运行轨迹,方便问题定位,提高了开发人员的工作效率和定位的准性,降低了开发难度, 缩短了开发周期; 2、 使用打印日志的方法确定内核程序的运行位置,帮助开发人员快速、高效、准确的定 位问题的位置。
【具体实施方式】
[0011] 参照具体实施例对本发明的一种基于日志打点的Linux内核调试方法作以下详 细地说明。
[0012] 实施例1 : 本发明的一种基于日志打点的Linux内核调试方法,使用打印日志的方法确定内核程 序的运行位置,通过添加相关的日志输出接口,根据输出日志的相关信息来实现跟踪内核 程序运行的全过程;主要由两部分组成:(1)、自动修改顺序号并生成与函数的对应关系, 以文件形式保存;(2)、打印日志输出顺序号和当前时间。
[0013] 所述的(1)中,通过dmesg或tail - f/var/log/messages查看;通过输出日志顺 序号,来确定对应的程序位置;日志顺序号通过手动添加来完成,添加时顺序号定义为〇, 添加完毕后,通过运行日志统计功能程序,修改内核中的日志顺序号并生成一个.map文 件,其中保存顺序号与函数的对应关系。
[0014] 所述的⑵中,日志输出中的时间是用于标记当前函数,通过该标记查找当前日 志处于哪一个函数;当前时间输出信息按时间排序后,对应程序的执行顺序。
[0015] 实施例2 : 本发明的一种基于日志打点的Linux内核调试方法,使用打印日志的方法确定内核程 序的运行位置,通过添加相关的日志输出接口,根据输出日志的相关信息来实现跟踪内核 程序运行的全过程;主要由两部分组成:(1)、自动修改顺序号并生成与函数的对应关系, 以文件形式保存;(2)、打印日志输出顺序号和当前时间。
[0016] 所述的(1)中,通过dmesg或tail - f/var/log/messages查看;通过输出日志顺 序号,来确定对应的程序位置;日志顺序号通过手动添加来完成,添加时顺序号定义为〇, 添加完毕后,通过运行日志统计功能程序,修改内核中的日志顺序号并生成一个.map文 件,其中保存顺序号与函数的对应关系。
[0017] 所述的⑵中,日志输出中的时间是用于标记当前函数,通过该标记查找当前日 志处于哪一个函数;当前时间输出信息按时间排序后,对应程序的执行顺序。
[0018] 流程步骤如下: (1) 、在内核代码中添加日志输出功能,顺序号定义为〇; (2) 、运行日志统计功能程序,对内核代码中的顺序号进行替换; (3) 、把生成的.map文件的内容和内核运行输出的日志分别拷贝至Excel表格,通过 Excel表格的vlookup函数即可把输出的信息对应到相应的函数。
【主权项】
1. 一种基于日志打点的Linux内核调试方法,其特征在于使用打印日志的方法确定内 核程序的运行位置,通过添加相关的日志输出接口,根据输出日志的相关信息来实现跟踪 内核程序运行的全过程;主要由两部分组成:(1)、自动修改顺序号并生成与函数的对应关 系,以文件形式保存;(2)、打印日志输出顺序号和当前时间。
2. 根据权利要求1所述的一种基于日志打点的Linux内核调试方法,其特征在于所述 的(1)中,通过dmesg或tail -f /var/log/messages查看;通过输出日志顺序号,来确定 对应的程序位置;日志顺序号通过手动添加来完成,添加时顺序号定义为0,添加完毕后, 通过运行日志统计功能程序,修改内核中的日志顺序号并生成一个.map文件,其中保存顺 序号与函数的对应关系。
3. 根据权利要求1所述的一种基于日志打点的Linux内核调试方法,其特征在于所述 的(2)中,日志输出中的时间是用于标记当前函数,通过该标记查找当前日志处于哪一个函 数;当前时间输出信息按时间排序后,对应程序的执行顺序。
4. 根据权利要求1所述的一种基于日志打点的Linux内核调试方法,其特征在于流程 步骤如下: (1) 、在内核代码中添加日志输出功能,顺序号定义为0; (2) 、运行日志统计功能程序,对内核代码中的顺序号进行替换; (3)、把生成的.map文件的内容和内核运行输出的日志分别拷贝至Excel表格,通过 Excel表格的vlookup函数即可把输出的信息对应到相应的函数。
【专利摘要】本发明公开了一种基于日志打点的Linux内核调试方法,属于Linux内核调试方法,技术方案为:使用打印日志的方法确定内核程序的运行位置,通过添加相关的日志输出接口,根据输出日志的相关信息来实现跟踪内核程序运行的全过程;主要由两部分组成:(1)、自动修改顺序号并生成与函数的对应关系,以文件形式保存;(2)、打印日志输出顺序号和当前时间。本发明提高了开发人员的工作效率和定位的准性,降低了开发难度,缩短了开发周期。
【IPC分类】G06F11-36
【公开号】CN104657277
【申请号】CN201510109742
【发明人】卓维晨
【申请人】浪潮集团有限公司
【公开日】2015年5月27日
【申请日】2015年3月13日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1