阅读linux源码的强大软件Source Insight

参考资料:韦东山编《嵌入式linux应用开发完全手册》
    source insight的强大我就不说了,谁用谁知道,但强大功能的背后都有一套复杂的使用方法,动辄几十页的说明文档看着就头疼,真正常用的功能就那么几个,在此介绍下针对嵌入式linux爱好者的souceinsight的快速入门,希望对大家有用。
    source insight 是windows下非常强大的程序代码阅读和编辑工具。特别是阅读程序中的某个宏或函数时,需要了解该函数的原型却不知道该函数是在本文件还是头文件中定 义的,这时可利用source insight把该文件和用到的头文件添加到一个项目中,阅读程序文件时,只用单击某函数或宏,其原型会在上下文窗口中自动显示。
这个功能在阅读linux源代码和别人的项目程序时非常有用。强烈推荐。
source insight 会将程序中的全局变量、局部变量表上不同的颜色;光标移到某个变量、函数上时,窗口下方会自动显示他们的定义;可快速找到函数间的调用关系;编辑代码时,变量名、函数名会自动补全。
    下面以创建一个基于arm的linux内核源码项目为例介绍source insight的使用。PS:linux的内核源码大部分为C文件,因此建立的项目语言类型为C,但是也存在汇编.S文件,因此要建立的项目包括的文件类型应包括
  1. 创 建一个c语言的source insight 工程。启动source insight->菜单option->Document Option->Document Type(C Source File),file filter中添加*.s,*.S类型,之后单击close关闭窗口。
  2. 单击菜单Project->New Project->输入工程名和保存路径。
  3. 指 定源码的源码的存放位置后,单击 Ok 按钮进入 add and remove project files 界面。在此界面下选择linux源代码存放的路径,如果不在上面显示的盘符下,可在file names窗口中输入路径,如输入E:\后回车,就进入了E盘目录下。

右侧的按钮介绍
add 添加选中的文件和文件夹下的文件
add all 添加file name目录框下的所有文件夹下的文件。单击add all按钮时在弹出的对话框中要选中include top level sub-directories 选项和recursively add lower sub-directories选项,表示递归添加子文件夹下的所有文件
add tree 递归添加选中的文件夹中的所有文件(包括子文件夹)
remove tree 删除选中的目录下的所有文件夹和文件

在此先添加linux源代码下的所有文件夹

4. 删除内核目录中用不到的文件

    由于linux支持多个架构的CPU,而在此只关心S3C24**目标板,所以可以在工程中删除不相关的文件。
要删除的目录如下:
arch 目录下除 arm 外的所有目录
arch/arm 目录下以 mach 开头的目录(mach-s3c2410和mach-s3c2440除外)
arch/arm 目录下以 plat 开头的目录(plat-s3c24**除外)
include目录下以 asm 开头的目录(asm-arm、asm-generic除外)
include/asm-arm目录下以arch开头的目录(arch-s3c24**除外)
至此,工程建立完毕。

5 建立数据库(同步源文件)
    建立的数据库的作用是保存项目源文件中个变量、函数之间的关系,这样编辑代码时source Insight可快速的提供各种辅助信息。
方法:菜单project->synchronize files->选中force all files to be re-parsed(强制分析所有文件),然后单击Ok按钮即可生成数据库。

6 主界面介绍:左侧为 符号窗口,显示当前文件中的变量、函数、宏定义等。
下边为 上下文窗口 在代码窗口中单击某变量,函数,宏的时候,此窗口会显示他们的定义

7 使用技巧。在某个变量、函数、宏上右击,在弹出的菜单中选择lookup reference,可以快速的找到所有源文件对他们的使用,当然定义也在里面。也可单击窗口上侧的“R”图标,输入要查询的变量或其他,也可进行搜索。
其他使用技巧可参考各种souce insight使用说明和帮助文档。在此不一一赘述。


转自:http://my.oschina.net/zhongwenhao/blog/92733
posted @ 2013-03-16 23:34  wust.zjf  阅读(1235)  评论(0编辑  收藏  举报