emacs cscope linux kernel 找不到符号的一种原因
当阅读linux内核代码时,我一般使用emacs + cscope,
但是今天发生了找不到符合的问题。
cscope can not find symbol function sock_setbindtodevice
找了半天原因,重建了很多次索引库,都不行。但是egrep就可以正常找到。
最后发现,是因为子目录里也创建了cscope的索引库,
emac在使用索引的时候,会从当前目录向上一级查找,遇到第一个索引库后停止。
如图:
把非预期的索引库文件删除后,恢复正常。
非预期索引产生的原因:
当时emacs+cscope进行代码浏览时,如果使用cscope的查找功能,并且没有提前常见索引库,emacs便会自动在当前目录里生成索引。