有时我需要修改 OSS 代码或别人的代码(通常是基于 C,但有时也会用到 C++/Java),在跟踪代码流程并尝试理解系统时,我发现自己需要在头文件中搜索类型、函数声明等内容。是否存在一种良好的工具,可以帮助浏览代码?我希望能够点击一个类型,并跳转到其声明,或者点击一个函数名,并跳转到其实现。因为我使用的是 Linux 系统,所以回复中提到“只需使用 Visual Studio”之类的答案可能不适用于我。谢谢!
有时我需要修改 OSS 代码或别人的代码(通常是基于 C,但有时也会用到 C++/Java),在跟踪代码流程并尝试理解系统时,我发现自己需要在头文件中搜索类型、函数声明等内容。是否存在一种良好的工具,可以帮助浏览代码?我希望能够点击一个类型,并跳转到其声明,或者点击一个函数名,并跳转到其实现。因为我使用的是 Linux 系统,所以回复中提到“只需使用 Visual Studio”之类的答案可能不适用于我。谢谢!
ctags非常有用。它包含两个步骤。首先,在所有源代码和包含目录上运行ctags程序。这将在本地目录中创建一个名为“tags”的文件。如果您的所有源代码都在单个目录中,则ctags *.c *.h就足够了。当您使用多个目录中的源代码时,可以在多个位置运行ctags。然后,在vi中,将光标放在任何函数、定义类型或变量上,使用ctl-]跳转到该实体的定义。如果您使用emacs,请使用etags。
我支持使用Doxygen。
这个工具生成了一堆类似于javadoc的HTML页面,可以索引所有代码,浏览它(查看该函数由哪些函数使用),就像在IDE中一样。使用它非常容易。
我曾经需要维护一个15年历史的C项目的2000个C代码文件。使用Doxygen索引代码并生成文档只花费了我一个小时,然后我就可以为其他开发人员提供生成的文档。(我知道,这听起来像广告,但这是真的......它真的是一个很好的工具)
这是一个适用于所有类C语言的美妙工具。
Doxygen非常好用。我之前从来没有接触过几个旧代码库,但是通过使用Doxygen(尽管这些代码库并没有使用Doxygen格式进行文档编写),我能够轻松地理解它们,这真的很棒。
可以在SD源代码搜索引擎找到一个语言敏感的源代码搜索引擎。它可以同时处理多种语言。可以针对特定语言中的模式或跨语言中的模式(例如“查找涉及TAX的标识符”)进行搜索。通过对语言令牌进行敏感处理,可以减少误报数量,为用户节省时间。它可以理解C、C++、C#、COBOL、Java、ECMAScript、Java、XML、Verilog、VHDL和许多其他语言。
在Linux下,IntelliJ作为源代码浏览器非常不错。它对于跳转到源代码和函数声明有非常好的支持。虽然我没有尝试过C/C++代码,但对于Ruby和Java它运行良好。
我使用Anjuta IDE。还不错。不确定它与Eclipse IDE相比如何。