有时我需要修改 OSS 代码或别人的代码(通常是基于 C,但有时也会用到 C++/Java),在跟踪代码流程并尝试理解系统时,我发现自己需要在头文件中搜索类型、函数声明等内容。是否存在一种良好的工具,可以帮助浏览代码?我希望能够点击一个类型,并跳转到其声明,或者点击一个函数名,并跳转到其实现。因为我使用的是 Linux 系统,所以回复中提到“只需使用 Visual Studio”之类的答案可能不适用于我。谢谢!
有时我需要修改 OSS 代码或别人的代码(通常是基于 C,但有时也会用到 C++/Java),在跟踪代码流程并尝试理解系统时,我发现自己需要在头文件中搜索类型、函数声明等内容。是否存在一种良好的工具,可以帮助浏览代码?我希望能够点击一个类型,并跳转到其声明,或者点击一个函数名,并跳转到其实现。因为我使用的是 Linux 系统,所以回复中提到“只需使用 Visual Studio”之类的答案可能不适用于我。谢谢!
我听说过关于OpenGrok的很多好事情。我知道我所在的公司里的另一个团队正在使用它,并且他们觉得它非常方便。从它的网站上可以看到:
OpenGrok是一个快速易用的源代码搜索和交叉引用引擎。它可以帮助您搜索、交叉引用和导航您的源代码树。它可以理解各种程序文件格式和版本控制历史,如Mercurial、Git、SCCS、RCS、CVS、Subversion、Teamware、ClearCase、Perforce和Bazaar。换句话说,它让您深刻理解开放源代码,因此得名为OpenGrok。它是用Java编写的。
Find this C symbol:
Find this function definition:
Find functions called by this function:
Find functions calling this function:
Find this text string:
Change this text string:
Find this egrep pattern:
Find this file:
Find files #including this file:
在帮助他人的项目上工作时,我通常会“生活”在c-scope中。我使用它来打开文件并使用我的IDE“gvim”进行编辑,然后退出并返回到c-scope中,这有助于保持任务集中。
我相信可以配置cscope以配合vim和emacs使用,尽管我也看到人们使用其他编辑器。
祝你好运。
使用Doxygen并将EXTRACT_ALL设置为YES。它既强大又易于使用。一旦你爱上它,你可以在所有平台和语言中坚持使用它。