我正在研究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) 我需要您的帮助:(
答案 0 :(得分:0)
请查看一些现有的文章或帖子,例如here,here和here。
我还没有使用cscope,但是我倾向于建议生成标签,特别是因为对于内核,您可以通过简单地从内核源目录的根目录调用“ make tags”来生成标签。要跳转到定义,可以执行Ctrl + [。您可以看到其余的绑定here。请注意,更具体地说,这是ctags,无需为vim进行任何特殊设置即可使用。
回答关于“许多头文件”的问题。 task_struct在lockdep.h或sched.h中定义,并根据上下文具有不同的字段和信息。您看到的其余实例(例如,在arch /目录中)通常是前向声明。为了了解task_struct,您可能需要看看this。
有关前向声明,请参见here。