分享

Linux内核源代码分析工具

 guitarhua 2012-03-03

Linux内核源代码分析工具

2009-08-01 14:44

凡是尝试做过内核分析的人都知道,Linux的内核组织结构虽然非常有条理,但是,它毕竟是众人合 作的结果,在阅读代码的时候要将各个部分结合起来,确实是件非常困难的事情。因为在内核中的代码层次结构肯定分多个层次,那么对一个函数的分析,肯定会涉 及到多个函数,而每一个函数可能又有多层的调用,一层层下来,直接在代码文件中查找那些函数肯定会让你失去耐心和兴趣。

俗话说:“工欲善其事,必先利其器”。面对Linux这样庞大的源代码,必须有相应工具的支持才能使分析有效地进行下去。 在此介绍两种源代码的分析工具,希望能对感兴趣的读者有所帮助。

1 .Linux超文本交叉代码检索工具

Linux超文本交叉代码检索工具LXR(Linux Cross Reference),是由挪威奥斯陆大学数学系Arne Georg Gleditsch和Per Kristian Gjermshus编写的。这个工具实际上运行在Linux或者Unix平台下,通过对源代码中的所有符号建立索引,从而可以方便的检索任何一个符号,包 括函数、外部变量、文件名、宏定义等等。不仅仅是针对Linux源代码,对于C语言的其他大型的项目,都可以建立其lxr站点,以提供开发者查询代码,以 及后继开发者学习代码。

  

目前的lxr是专门为Linux下面的Apache服务器设计的,通过运行perl脚本,检索源代码索引文件,将数据发送到网络客户端的Web浏览器上。任何一种平台上的Web浏览器都可以访问,这就方便了习惯在Windows平台下工作的用户。

关于lxr的英文网站为http://lxr./,在中国Linux论坛http://www.上有其镜象。

2. Windows平台下的源代码阅读工具Source Insight

为了方便地学习Linux源程序,我们不妨回到我们熟悉的window环境下。但是在Window平台上,使用一些常见的集成开发环境,效果也不是 很理想,比如难以将所有的文件加进去,查找速度缓慢,对于非Windows平台的函数不能彩色显示。在Windows平台下有一个强大的源代码编辑器,它 的卓越性能使得学习Linux内核源代码的难度大大降低,这便是Source Insight,它是一个Windows平台下的共享软件,可以从http://www./上下载试用版本。由于 Source Insight是一个Windows平台的应用软件,所以首先要通过相应手段把Linux系统上的程序源代码移到Windows平台下,这一点可以通过在 Linux下将/usr/src目录下的文件拷贝到Windows的分区上,或者从网上或光盘直接拷贝文件到Windows的分区。


a. Windows系统可以用Source Insight,Linux系统可以用Source Navigator。

  b. vim或emacs编辑器,配合cscope、ctags、etags等交叉索引工具。

  c. vim或emacs编辑器,配合grep、egrep等文本搜索工具,不过最好要对源代码目录结构有所熟悉

  d. LXR,以网页的形式通过浏览器浏览,安装复杂(debian下安装容易,请版面搜寻lxr)

  校外:可以直接访问http://lxr./source/在线阅读Linux内核源代码。

  校内:可以访问http://10.214.14.127/lxr/http/source/,如果需要特定版本可以联系vatano,只有空间足够就放上去。

  e. GNU global,可以在命令行用,也可以生成hypertext,类似lxr,但更省事。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多