2010-09-27 87 views
5

我寻找在* nix命令行实用程序,可以转储文件(C/C++/Java的)中定义的所有功能,类等的名字linux工具列出源文件中的所有功能?

+0

什么样的文件,什么语言,你的意思是编写的elf文件? – Gadolin 2010-09-27 06:26:49

+0

源文件的语言是什么? – 2010-09-27 06:26:59

+0

对于java写一个基于反射的代码来做到这一点。请检查C++ filt是否对你有用 - http://sourceware.org/binutils/docs-2.16/binutils/c_002b_002bfilt.html – Jayan 2010-09-27 06:37:56

回答

7

ctags可以给你(和多更多)。它是包含在大多数Linux发行版...
http://ctags.sourceforge.net/whatis.html

+0

我知道ctags,但它会生成它的标签文件,然后需要它被导入到编辑器中,例如VIM。我想要一个简单的实用程序,只是在控制台上打印函数名称,如果ctags确实不知道 – Anonymous 2010-09-27 06:34:23

+1

,那么您需要'ctags -x',它打印出一个可读的东西摘要。 – SingleNegationElimination 2010-09-27 06:39:55

+0

另外'ctags -f -'将输出打印到标准输出,而不是标签文件。然后你可以使用'awk'或类似的东西... – 2010-09-27 06:41:32

0

目前尚不清楚你指的是语言:如果:

  • 符合ELF文件,那么你必须readelf工具提供您调试编译的文件信息“-g”
+0

这对于C++来说是不适用的,因为名字会变形... – 2010-09-27 06:32:15

+1

@Gilad Naor - 但是你可以使用C++ filt去掉它们 – 2010-09-27 08:03:30

0

不知道这将是你的确切目的是有用的,但看看GCC-XML

0

您可能还想看看cscope,它与接受的答案中建议的ctags类似。它创建自己的符号数据库。它为您提供了一个很好的界面,可以在您的项目中搜索给定的符号/包含/文件/声明。

相关问题