我如何使用cscope在Linux内核中找到task_struct

时间:2019-04-05 04:57:46

标签: kernel cscope

我正在研究OS 尤其是linux内核

我告诉我情况。

我在kernel.org上下载了Linux内核,并获得了一些工具,例如ctags,cscope以及在vimrc上添加了一些插件 而且我认为,我也编译了内核。文件夹中有linux-header.deb和linux-image.deb,并且对cscope做了一些操作。 所以我得到了cscope.out并且我知道命令cscope -d

现在,我的问题是 我该如何使用cscope-d?

我需要找到task_struct和thread_struct,并且 task_struct中的thread_struct类型的变量是什么

我不知道我可以用cscope做什么。 有“查找c符号”,“全局定义”,“文本字符串”等

当我在“查找此c符号”中键入task_struct时 头文件很多。 当我在“全球定义”中键入task_struct时 也有很多 1)这两个有什么区别?

当我输入标题时,只有一条语句没有结构的详细信息。 2)我想念的东西吗?还是我需要检查所有头文件?

很长,但问题是1)和2) 我需要您的帮助:(

1 个答案:

答案 0 :(得分:0)

请查看一些现有的文章或帖子,例如hereherehere

我还没有使用cscope,但是我倾向于建议生成标签,特别是因为对于内核,您可以通过简单地从内核源目录的根目录调用“ make tags”来生成标签。要跳转到定义,可以执行Ctrl + [。您可以看到其余的绑定here。请注意,更具体地说,这是ctags,无需为vim进行任何特殊设置即可使用。

回答关于“许多头文件”的问题。 task_struct在lockdep.hsched.h中定义,并根据上下文具有不同的字段和信息。您看到的其余实例(例如,在arch /目录中)通常是前向声明。为了了解task_struct,您可能需要看看this

有关前向声明,请参见here