(零)阅读源码的工具及参考资料

来源:互联网 发布:spss统计软件17.0 编辑:程序博客网 时间:2024/04/29 20:40

工具

分析源码,首先对工具的准备很重要,在windows有阅读源码的利器source insight,但是由于我的日常系统是centos,并且不想在虚拟机下进行分析,所以找了一些linux阅读源码的工具。
我使用的主要工具是:ctags+cscope
接下来我简单介绍一下这些工具的使用

ctags的使用

在源码根目录执行ctags -R命令,递归的为源码建立tags,在根目录会生成一个Tags的文件,存放各种函数和变量的tag。
让光标停在函数/变量上,ctrl + ]即可跳转到定义处,ctrl + t可以回到你跳转前的位置。
如果文件太多了,用这个可能不太好使了。所以下面推荐cscope(一般是内建的)

cscope的使用

在源码根目录运行cscope -Rbq,就会生成cscope.out文件(索引数据库)
- R:在生成索引文件时,搜索子目录树中的代码
- b:只生成索引文件,不进入cscope的界面
- q:生成cscope.in.out文件和cscope.po.out文件,加快cscope索引速度

在vim中执行cs add cscope.out添加数据库
接下来查询命令:cs find s var(x代表查询选项,var表示要查找的函数/变量名)
大致有以下8种查询方式:

  • s:查找C语言符号,即查找函数名、宏、枚举值出现的地方
  • g:查找函数、宏、枚举等定义的位置
  • d:查找本函数调用的函数
  • c:查找调用本函数的函数
  • t:查找指定的字符串
  • e:查找egrep模式
  • f:查找并打开文件
  • i:查找包含本文件的文件

参考资料

主要参考了官方的文档http://www.wangafu.net/~nickm/libevent-book/
以及 http://blog.csdn.net/sparkliang 这系列的博客