2

对于任何 c 应用程序(在这种情况下假设为 apache),我想返回所有方法的列表以及在其中找到它们的文件。例如,我希望看到如下内容:

int add (int a, int b)..... math.c
int subtract (int a, int b)..... math.c
int Multiply (int a, int b)..... math.c
int foo ()..... foo.c

我想这样做并避免手动解析物理 c 文件以获取方法输出的繁琐任务。我知道其他语言有反射器。

谢谢大家。

4

4 回答 4

4

人纳米(1)

但是,只有在 (-g) 中编译了调试信息时,符号源文件才可用。

于 2013-02-23T15:55:32.050 回答
3

您没有指定平台,因此一种可能的解决方案是“ctags”程序:

说明 ctags 实用程序应在支持用户可移植性实用程序选项、软件开发实用程序选项以及 C 语言开发实用程序选项和 FORTRAN 开发实用程序选项中的一个或两个的系统上提供。在其他系统上,它是可选的。

ctags 实用程序应从路径名操作数指定的 C 语言或 FORTRAN 源文件中写入标签文件或对象索引。标签文件应列出源文件中特定语言对象的定位器。定位器由名称、路径名以及可用于搜索对象定义的搜索模式或行号组成。应识别的对象在扩展描述部分中指定。

选项 ... -x 生成对象名称列表、行号和定义每个对象的文件名,以及该行的文本,并将其写入标准输出。指定 -x 时不应创建标签文件。

于 2013-02-23T15:55:40.280 回答
3

你可以用ctags做到这一点。从网站:

Ctags 生成在源文件中找到的语言对象的索引(或标记)文件,允许文本编辑器或其他实用程序快速轻松地找到这些项目。标记表示可以使用索引条目的语言对象(或者,为该对象创建的索引条目)。

Ctags与多种工具兼容

于 2013-02-23T15:55:56.097 回答
3

听起来像是链接器的工作。您是否尝试过生成地图文件?检查您的链接器文档以了解如何生成映射文件。

于 2013-02-23T16:00:08.980 回答