[发明专利]一种分析Linux内核动态执行的方法无效
申请号: | 201110151167.4 | 申请日: | 2011-06-02 |
公开(公告)号: | CN102810078A | 公开(公告)日: | 2012-12-05 |
发明(设计)人: | 周庆国;边立军;金国军;盛勇;孙彦猛;杨红刚 | 申请(专利权)人: | 兰州大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/00 |
代理公司: | 兰州振华专利代理有限责任公司 62102 | 代理人: | 张晋 |
地址: | 730000 *** | 国省代码: | 甘肃;62 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种对Linux操作系统的内核在动态执行过程中所涉及的函数、语句进行追踪、分析的方法。本发明的的方法是:通过对开源程序strace、KFT、tags和gcov进行扩展,使这些程序在原有的基础上对每一个可执行文件进行追踪,同时过滤出相应的被追踪的可执行文件在执行过程中的系统调用等信息,并将这些信息存入新建立的数据库中,最终在网页上显示相关的信息,并链接显示调用树;调用树中的每个内核函数链接到定义该内核函数的文件;显示内容包括该文件中函数的覆盖率;以及每个语句的执行次数。 | ||
搜索关键词: | 一种 分析 linux 内核 动态 执行 方法 | ||
【主权项】:
一种分析Linux内核动态执行的方法,其特征是:将开源程序strace通过程序进行扩展,经扩展后的strace在原来的基础上自动的对拟分析项目中的每一个可执行文件进行追踪,同时过滤出相应的被追踪的可执行文件在执行过程中的系统调用,将过滤出的系统调用给予一个新命名单独保存在与该可执行文件相对应的另外建立的新文件中;将开源程序的KFT功能通过程序进行扩展,扩展后的KFT在原来的基础上可自动追踪每个系统调用所调用的内核函数,并自动对同一个文件中每个系统调用追踪100次,创建数据库,并在数据库的表1中保存KFT追踪结果,对结果的调用树去重,建立追踪结果和调用树的对应关系,在前述数据库的表2中保存,在KFT对所有系统调用追踪结束后,将当前配置下的函数映射地址保存在前述数据库的表3,将autoKFT执行时的系统环境信息保存在数据库的前述数据库的表4中;在编译过Linux源代码的目录下会生成tags文件,从数据库表1中取出前述步骤中KFT追踪到的内核函数,在tags中过滤这些内核函数以及内核函数定义、声明的内核文件,并在前述数据库的表5中保存这些内核函数名和对应的内核文件名;将开源程序gcov通过程序进行扩展,使扩展后的gcov在原来的基础上能得到内核c文件中函数的起始行的数、结束行的数以及执行覆盖率,以及内核C文件中语句块的起始、结束的行数和执行的次数,调用这些功能自动处理每一个内核文件的gcov结果,得到执行过程中用到的每一个内核文件中函数覆盖率,保存到前述数据库的表6中,得到调用过的每个内核文件中语句块的起始、终止行数、执行次数,将结果存在前述数据库的表7中,对这些内核文件预编译成汇编文件,将结果保存在前述数据库的表8中,将autogcov执行时的系统环境信息保存到前述数据库的表4中;最终在网页上显示:从数据库中的每个系统调用的名称,对每个系统调用的每次追踪读取执行时间,统计出最大、最小执行时间,计算出平均执行时间和时间方差,在网页上显示,每个系统调用链接显示追踪的结果,对每个系统调用显示调用树的个数,并链接显示调用树;调用树中的每个内核函数链接到定义该内核函数的文件,显示内容包括该文件中函数的覆盖率,以及每个语句的执行次数。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于兰州大学,未经兰州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110151167.4/,转载请声明来源钻瓜专利网。
- 上一篇:制备筒状石墨加热器用固定棒及加热器的制造方法
- 下一篇:太阳能电池组件