大型代码库的浏览,学习,查找引用,符号跳转等等,用什么工具比较好? visual studio 顶不住啊......

2021-04-06 14:00:46 +08:00
 yazoox

有一款老产品,c++写的代码,有十几二十年了吧。.vcproj 估计有几百个,代码行数没有上千万,几百万还是有的。源代码库拉下来,有几十 GB 吧......

有时候,需要查看一下老代码,了解学习一下,某功能当初是怎么设计实现的(毕竟这么多年,当初写的人,不在公司了),现在的功能,需要按照或者参考以前的设计和实现。

尝试过,建立一个 visual studio 的 solution,把所有的 projects 都添加进来,等 vs 的索引完毕,就能够跳转了,比如,go to definition or references,etc.。可是,这个时候,通常,vs (vs2019) 就“死机了”。

目前做的是前端项目,也很大。查看代码,用 vscode,还行,顶得住。如果在远程的机器上,我就安装 neovim + coc + leaderF + ripgrep,也是可以正常使用的。

但是,这个 c++的项目,不知道这个方法行不行。

所以,来问问大家,有没有碰到过这样的情况,需要查看 /学习老的项目代码,该项目代码库又很庞大。怎么索引,代码跳转呢?谢谢。

p.s. 现在在内部的 gitlab 上面直接搜索,效率太低了......

p.s. 我的机器是至强的 32 核心,64G 内存, ssd 硬盘

6904 次点击
所在节点    C++
38 条回复
domodomo
2021-04-07 03:23:19 +08:00
source-insight+1,几年前常用
很多 C 艹商业大型代码库里面的编码水平都不咋地,可以说又丑又烂,有些能运行起来都是奇迹
seesky
2021-04-07 04:04:00 +08:00
要不考虑下 scitools understand,
LANB0
2021-04-07 07:13:25 +08:00
sourceinsight + 1
pythonee
2021-04-07 07:46:44 +08:00
source insights
Mithril
2021-04-07 08:14:55 +08:00
Visual Studio 这东西除非你是 SSD,不然就它那个 32bit 的 devenv,装几个插件打开个大型工程就直接炸了。一般项目太大就直接拆 sln 了,或者只加载必要的项目。
如果只看代码的话其实不需要真的语义分析建立索引,只需要 token 能查到就行了。跳转不那么精准也能忍。opengrok 或者 sourcegraph 这种基本也就够了。
52coder
2021-04-07 09:22:21 +08:00
sourceinsight + 1,转到 mac 后唯一不习惯的地方,渐渐开始用 clion
52coder
2021-04-07 09:23:43 +08:00
想要一款跨平台的,目前感觉还是 sourceinsight 顺手
tanranran
2021-04-07 10:03:44 +08:00
@Mithril #25 LZ 的是至强的 32 核心,64G 内存, ssd 硬盘
HangoX
2021-04-07 11:51:35 +08:00
https://sourcegraph.com/github.com/square/okhttp 简单浏览都是用这个,网页版直接看
JJFJJ
2021-04-07 12:06:07 +08:00
曾经开发 VNDK,开发编译都是 ubuntu,虽然可以 wine 下安装 source insight 但是使用不是很好。最后的解决办法是:ubuntu 安装 samba,把工程目录共享给 windows 电脑使用,在 windows 上进行代码阅读编辑
gxm44
2021-04-07 14:10:19 +08:00
sourceinsight + 1
zhusimaji
2021-04-07 14:20:27 +08:00
sourceinsight 当年写固件的时候用的神器
mxi1
2021-04-07 14:24:03 +08:00
根据编译过程,生成 compdb,一般叫 compile_commnads.json
mxi1
2021-04-07 14:25:28 +08:00
不小心按到回车了,compdb 是很多 IDe 都支持的,比如 vs code,你可以上网搜搜怎么生成和使用
binux
2021-04-07 14:40:23 +08:00
@typetraits 直接 https://source.chromium.org/ 搜索它不香吗?
macha
2021-04-07 16:27:20 +08:00
只有 sourceinsight 一条路可走了。别的要么扛不住,要么不好用。
sunbreak
2021-04-08 15:41:09 +08:00
@JJFJJ WSL 2 挺好用的
asuraa
2021-06-21 14:33:01 +08:00
只能 sourceinsight 了 别的都够呛

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

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

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

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

© 2021 V2EX