有什么好的工具可以帮助浏览/遵循C代码?
有时我需要修改OSS代码或者其他人的代码(通常基于C,但有时是C ++ / Java),并发现自己为类型,函数声明等标题" grep"。 。是否存在一个有助于代码浏览的好工具。我希望能够单击一个类型并带到声明中,或者单击一个函数名并带到它的实现中。我在Linux机器上,因此诸如"仅使用Visual Studio"之类的回复不一定对我有用。谢谢!
解决方案
回答
我们无法获得比SourceInsight更好的任何东西。
回答
我听说过有关OpenGrok的惊人事情。我知道在我工作的地方有另一个团队正在使用它,他们很容易找到它。从其网站:
OpenGrok is a fast and usable source code search and cross reference engine. It helps you search, cross-reference and navigate your source tree. It can understand various program file formats and version control histories like Mercurial, Git, SCCS, RCS, CVS, Subversion, Teamware, ClearCase, Perforce and Bazaar. In other words it lets you grok (profoundly understand) the open source, hence the name OpenGrok. It is written in Java.
回答
我将Vim与ctags和taglist插件一起使用。我们可以将光标移动到变量名,并使用组合键将我们带到变量的声明(并返回)。标签列表还将在侧栏中显示所有功能,类等的概述。
回答
Eclipse IDE除Java外还可以使用C / C ++。在IBM的Developer Works站点上有一篇关于如何为C / C ++开发配置Eclipse的文章。
编辑:为什么这被否决了?这是一个有效的答案。带有C / C ++插件的Eclipse将允许问题作者执行他想做的事情。我不是唯一建议的人,但其他人都没有被否决。那么,为什么这个被否决呢?
回答
如果我们正在寻找简单易用的东西,请尝试使用etags。它不会像重量级的工具那样好,但是它在几乎所有方面都可以使用,并且可以与emacs一起使用。将ctags用于vi。
回答
Vim和Ctags为我工作。
回答
IntelliJ作为Linux下的源浏览器非常不错。它为在源声明和函数声明之间跳转提供了很好的支持。尚未在C / C ++代码中尝试过,但它在Ruby和Java中工作良好。
回答
我没有直接使用它,但是我使用了用lxr创建的站点,并认为它非常方便。它使用指向交叉引用功能和文件名的链接,将项目转换为行号和交叉引用的HTML文件。这里有一些用它索引的项目源示例。
似乎没有比2006年更新的版本,但是它仍然可以满足需求。
回答
我使用Anjuta IDE。不错。不知道它与Eclipse IDE的比较。
回答
Doxygen可以生成一组包含源浏览器的网页。虽然不像IDE那么花哨,但它所需要的只是一个Web浏览器。
回答
任何IDE都可以正常工作。
Netbeans和Eclipse基于Java,但是具有C / C ++插件
回答
我在内核空间做了一些工作,然后继续讨论范围。
例如:
$ cd / usr / src / redhat / BUILD / kernel-version
$ cscope -R -p4
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中。我用它来通过" gvim"(我的IDE)打开文件,编辑内容,然后退出"返回"到c-scope,这有助于我保持任务集中。
我相信cscope可以配置为与vim和emacs一起使用,尽管我已经看到人们也使用其他编辑器。
祝我们好运。
回答
我使用kscope,它在后台使用cscope,但也提供功能列表等。似乎也可以很好地处理像Linux内核这样的大型项目。这
kscope主页对它的作用和不作用进行了简洁明了的描述。
回答
cscope一直是我的最爱。也有cbrowser,但是我还没有尝试过。 ctags也使用很多。
回答
ctags非常有用。涉及两个步骤。首先在所有源代码上运行程序ctags并包含目录。这将在本地目录中创建一个名为" tags"的文件。如果所有源代码都在一个目录中,则ctags * .c * .h会很好。当我们在多个目录中使用source时,值得在多个位置运行ctags。然后,在vi中,将光标放在任何函数,定义的类型或者变量上,请使用ctl-]转到该实体的定义。如果我们正在使用emacs,请使用etags。
回答
我支持使用氧气。
该工具生成了像一堆html页面一样的javadoc,允许对所有代码进行索引,在其中进行浏览(此函数在何处使用以及由哪个函数...),就像在IDE中一样。使它工作非常容易。
我曾经维护过15年的C项目的2000个C代码文件。我花了一个小时用doxygen索引代码,为其他开发人员提供了生成的文档。 (我知道,这句话听起来像是加法,但确实如此……这确实是一个很好的工具)
一个很棒的工具,可以在所有类似C的语言上工作。
回答
我使用C ++理解。这是处理大量代码的非常方便的工具。它还可以计算代码统计信息并绘制调用图。
一定有!
回答
使用doxygen取得了巨大的成功。为了获得最佳结果(尤其是在创建c ++文档时),请安装graphviz并在doxygen配置文件中启用。
这将自动生成链接到html文档其余部分的依赖关系图和类图。
回答
即使我们不是开发人员,也请使用Source Insight
如果是的话,它必须有:)
回答
Doxygen很棒。我已经遇到了一些以前从未使用过的遗留代码库,这对我来说非常棒(即使没有使用Doxygen格式记录这些代码库)。
回答
cscope。 (想修改其他范围的职位,但我还没有业力)。
- 全局搜索和替换
- 查找所有被称为函数的地方
- 查找函数调用的所有位置
- 查找包含此文件的文件。
非常简单的用法:$ cscope -R
如果我们不知道vi,则将EDITOR和VIEWER环境变量更改为我们喜欢的编辑器。
回答
我发现ID Utils非常方便。就像即时递归grep。有很多vim食谱可以搭配使用。
回答
选择Doxygen,并将EXTRACT_ALL设置为YES。它功能强大且简单。一旦爱上它,就可以在所有平台和语言上坚持使用它。
http://www.doxygen.org
回答
我使用并且喜欢自由软件工具GNU global。
回答
可以找到对语言敏感的源代码搜索引擎
在SD源代码搜索引擎中。它可以同时处理多种语言。
可以搜索特定语言中的模式,
或者跨语言的模式(例如"涉及TAX的查找标识符")。
通过对语言标记敏感,可以减少误报的数量,
为用户节省时间。它了解C,C ++,C#,COBOL,Java,ECMAScript,Java,XML,Verilog,VHDL和许多其他语言。
回答
我从这里使用Source-Navigator(TM)。这是非常令人印象深刻的,对我们有很大帮助。它是用Tcl / Tk编写的,可以作为Windows的可执行文件,也可以作为可在* nix上构建的源代码。