本篇博客为学习同步更新博客,学习如何使用source insight查看linux内核源码以及工具的使用技巧。
source insight4.0官方文档:https://www.sourceinsight.com/doc/v4/userguide/index.html#t=Manual%2FFrontMatter%2FFrontMatter.htm
在完成工程的创建之后,我们查看工程窗口(Project Window),发现Project Files的子页面里面成功导入了我们所有的源代码,但是查看工程符号索引页面(Project Symbols)却发现里面什么都没有。
随便阅读一个源码点击某个自定义的函数返回值,或者是宏定义发现也无法找到该自定义的函数或宏符号。
这是因为我们没有让source insight分析我们的所有源代码建立符号索引表的数据库(建立一个高效的源码符号索引数据库是source insight的特色所在),因此我们需要进行工程同步分析。
然后耐心等待分析完毕后,发现我们的符号索引表(Project Symbols)建立成功,并且刚才无法找到的自定义符号位置也成功找到并跳转成功,发现它是个宏定义!接下来,你就可以快乐的进入源码阅读的步骤了。
在上方的工具栏里点击我们的Relation Window按钮即可显示我们的Relation窗口,如果发现列表中无内容可以点击下方的刷新按钮进行刷新。Relation窗口提供了三种显示方法来显示某一自定义符号(函数或宏定义等)的调用或使用情况,包括调用或使用该符号的所有源文件位置、源文件中调用或使用该符号的行位置等信息。
下图例子显示了我们刚才测试的INIT_DELAYED_WORK宏定义的所有使用位置。
不同的显示视图
源码编辑窗:光标移动到某一符号位置source insight会进行自动解析。 窗口1:解析显示该文件所有的符号,该窗口最下边的按钮栏提供了排序等功能。 窗口2:显示光标位置的符号在该文件中的所有使用或调用位置。 窗口3:显示光标位置的符号的定义位置(宏定义或函数定义等) 窗口4:Relation窗口,显示光标位置的符号在工程中所有源码文件中的使用或调用位置。 当想取查看其它源码文件时,就要在右上部分的菜单栏中呼出Project Window来选择其他源码文件。