有什么好的工具可以帮助浏览/跟踪C代码?

14

有时我需要修改 OSS 代码或别人的代码(通常是基于 C,但有时也会用到 C++/Java),在跟踪代码流程并尝试理解系统时,我发现自己需要在头文件中搜索类型、函数声明等内容。是否存在一种良好的工具,可以帮助浏览代码?我希望能够点击一个类型,并跳转到其声明,或者点击一个函数名,并跳转到其实现。因为我使用的是 Linux 系统,所以回复中提到“只需使用 Visual Studio”之类的答案可能不适用于我。谢谢!

27个回答

1

ctags非常有用。它包含两个步骤。首先,在所有源代码和包含目录上运行ctags程序。这将在本地目录中创建一个名为“tags”的文件。如果您的所有源代码都在单个目录中,则ctags *.c *.h就足够了。当您使用多个目录中的源代码时,可以在多个位置运行ctags。然后,在vi中,将光标放在任何函数、定义类型或变量上,使用ctl-]跳转到该实体的定义。如果您使用emacs,请使用etags。


1

我支持使用Doxygen

这个工具生成了一堆类似于javadoc的HTML页面,可以索引所有代码,浏览它(查看该函数由哪些函数使用),就像在IDE中一样。使用它非常容易。

我曾经需要维护一个15年历史的C项目的2000个C代码文件。使用Doxygen索引代码并生成文档只花费了我一个小时,然后我就可以为其他开发人员提供生成的文档。(我知道,这听起来像广告,但这是真的......它真的是一个很好的工具)

这是一个适用于所有类C语言的美妙工具。


1

Doxygen非常好用。我之前从来没有接触过几个旧代码库,但是通过使用Doxygen(尽管这些代码库并没有使用Doxygen格式进行文档编写),我能够轻松地理解它们,这真的很棒。


0

我使用这里的Source-Navigator(TM)。它非常令人印象深刻,对我帮助很大。它是用Tcl/Tk编写的,可作为Windows可执行文件和*nix源代码使用。


0

可以在SD源代码搜索引擎找到一个语言敏感的源代码搜索引擎。它可以同时处理多种语言。可以针对特定语言中的模式或跨语言中的模式(例如“查找涉及TAX的标识符”)进行搜索。通过对语言令牌进行敏感处理,可以减少误报数量,为用户节省时间。它可以理解C、C++、C#、COBOL、Java、ECMAScript、Java、XML、Verilog、VHDL和许多其他语言。


0

我发现ID Utils非常方便。它就像一个即时的递归grep。还有一堆vim配方可以使用。


0
我使用并喜欢免费软件工具 GNU global

0

在Linux下,IntelliJ作为源代码浏览器非常不错。它对于跳转到源代码和函数声明有非常好的支持。虽然我没有尝试过C/C++代码,但对于Ruby和Java它运行良好。


0

我没有直接使用过它,但我使用过用lxr创建的网站,觉得非常方便。它将您的项目转换为带有行号和交叉引用的HTML文件,并使用链接来交叉引用函数和文件名。这里有一些使用它索引源代码的项目示例here

似乎没有比2006年更新的版本,但它仍然可以满足您的需求。


0

我使用Anjuta IDE。还不错。不确定它与Eclipse IDE相比如何。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接