zoukankan      html  css  js  c++  java
  • [daily] 如何用emacs+xcscope阅读内核源码

    假设

    首先我假设:

    1. 你已经学会了使用emacs。
    2. 同时也学会了使用cscope。
    3. 读过cscope官网上,关于emacs的使用指引。
      它的指引就是请你去阅读xcscope.el的源码,当然这无可厚非,而且非常好。
      因为源码里的注释写的非常的详细。

    如果,你不满足以上假设。也可以继续读下去,或者看一下我的另两篇短文。他们可以帮助你更快的定位学习资源。
    ![daily] cscope
    ![efficiency] emacs入门

    问题

    然后基于前边的信息,你在初次使用的时候,很可能会遇到想我一些的问题,就是在kernel工程下无论如何也找不到symbol
    即使cscope们生成的都是正确的。

    原因和解决

    那是因为你,缺少cscope.files文件。这个文件是xcscope所需要的。我不清楚为什么在别的工程并不需要,比如strongswan。
    总之,你在emacs里,在进入了你所在的工程,并打开了c文件(emacs有一个宏在识别到c文件是在打开cscope minor模式),
    执行以下函数:

    cscope-index-files
    

    这个时候,就可以生成cscope.files文件,并正常索引了。而且如果你没有cscope.out的时候,他还也会帮你同步生成。

    换句话说,你根本无需在命令行里自己做索引,只用这个函数就好了。

    扩展

    但是kernel有一点特殊的,就是它不需要所以系统include目录。
    而且,他很大,我们希望用-q参数加速。
    所以,你其实可以提前在命令行里自己做index。就如同你以前用vim的时候一直干的那样。

    cscope -b -R -k -q
    

    总结

    所以,回到我们的标题,用emacs + xcscope 读kernel代码时,如何做呢?

    1. 用cscope生成kernel的index。
    2. 在emacs里做cscope.files的文件。

    雕虫小技,各位见笑。

  • 相关阅读:
    day1 UnicodeEncodeError: 'gbk' codec can't encode character 'xa0' in position 2490: illegal multibyte sequence 错误提示
    day2 Opencv + image
    day1 Opencv安装 python 2.7 (32位)
    2 oracle 实现上下键翻历史命令 rlwrap
    Windows下安装RaibbitMQ
    1. oracle12C的安装
    《万达哲学》------王健林
    MongoDB常用命令
    MongoDB让人恶心的配置
    MongoDB介绍及下载与安装
  • 原文地址:https://www.cnblogs.com/hugetong/p/10231139.html
Copyright © 2011-2022 走看看