windows下阅读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文件,所以要创建的项目包括的文件类型应包括
- 创 建一个c语言的source insight 工程。启动source insight->菜单option->Document Option->Document Type(C Source File),file filter中添加*.s,*.S类型,以后单击close关闭窗口。
- 单击菜单Project->New Project->输入工程名和保存路径。
- 指 定源码的源码的存放位置后,单击 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使用说明和帮助文档。在此不一一赘述。