请教一下,阅读 Linux Kernel 最快的解决方案(@Windows)是啥呢?

2020-03-26 11:46:36 +08:00
 nevin47

最近在看 Kernel 相关的源码,但是因为 Kernel 中各种神级 arch,花式宏封装,试了好几个工具( VSC,CLion,SI,Vim ...)都觉得不得劲

尤其是遇到一个xxx_arch_xxx接口的时候,全局搜索( ag 、ack 、各种自带全局搜索全试过了)慢的让人崩溃( nvme 盘、Ramdisk 全试过了)

想问问万能的 V 友们,有没有比较优雅的阅读 Kernel 代码的方案可以推荐的……

9256 次点击
所在节点    Linux
49 条回复
abutter
2020-03-26 12:04:49 +08:00
能问一下你读 Linux 内核代码的目的是啥吗?
reus
2020-03-26 12:08:47 +08:00
ctags..
wsy2220
2020-03-26 12:15:26 +08:00
abcdabcd987
2020-03-26 12:15:51 +08:00
scriptB0y
2020-03-26 12:15:55 +08:00
scriptB0y
2020-03-26 12:16:17 +08:00
我勒个去,为啥有三个人在几秒内一起回这个。。。
nevin47
2020-03-26 12:26:34 +08:00
@wsy2220 #3
@abcdabcd987 #4
@scriptB0y #5

多谢三位……这个站点老早就在看了,但是 u1s1,这玩意儿还不如我全局搜来的快 尤其是高频追踪一个入口的 reference 路径的时候
nevin47
2020-03-26 12:31:06 +08:00
@reus #2 tags 只是能跳转,但是 arch 场景会乱跳,更恼火

全局搜索主要是为了 reference
nevin47
2020-03-26 12:32:00 +08:00
@abutter #1 工作目的嘛
byaiu
2020-03-26 12:36:57 +08:00
eclipse=>Properities=>C/C++ General => Paths and Symbols => Source Location => /linux filters
把不需要的 arch 目录都放进去就可以
zhuangzhuang1988
2020-03-26 12:43:34 +08:00
https://sysprogs.com/VisualKernel/ 这个??
不过我没用过,
读内核 肯定是先看驱动 怎么玩
动态调试学习
https://sysprogs.com/tutorials/wp-content/uploads/2018/02/13-floppy.png
xsen
2020-03-26 12:49:35 +08:00
qtcreator,很久前看内核源码是用这个,现在 c/c++源码基本也是这个
另外,添加源码的时候,不要把所有**_arch 都加到工程,只加关注的几个
abutter
2020-03-26 12:49:50 +08:00
如果是驱动,就关心接口及其规范;如果是某个子模块,那就看设计文档。

如果是单纯看某个 arch 的,你可以把内核的调试信息 dump 初来,把文件路径提取出来,然后 sed 工具处理一下,导入到某个特定的 IDE 里面。
inwar
2020-03-26 12:58:56 +08:00
难道不是 sourceinsight?
Chenamy2017
2020-03-26 13:03:45 +08:00
我用 sourcesight,然后会把 arch 下所有的体系架构的代码都删掉,只保留一个,比如 ARM,有时候还会把驱动目录下全删掉。
我就是只想看内核的核心代码。
season4675
2020-03-26 13:21:51 +08:00
arch 看一个就行了,driver 也看几个就行了,其他的都删了。
woai110120130
2020-03-26 13:33:36 +08:00
clion
Nitroethane
2020-03-26 13:36:52 +08:00
neovim + ctags,然后用 vim 插件 leaderF,堪称搜索神器
nightwitch
2020-03-26 13:47:29 +08:00
ctags + gtags
控制一下要索引的目录,还算勉强能看。
nevin47
2020-03-26 14:01:32 +08:00
@season4675 #16
@byaiu #10
@Chenamy2017 #15

现在就是类似这样玩的,但是很麻烦的是,我需要关注 4 个 arch 下的差异……所以遇到重载的时候还是很头疼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/656319

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX