从c/cpp文件中获取所有函数的名称

Rog*_*ang 2 c clang

例如,有一个C文件a.c,该文件中有 3 个函数:funA()funB()funC()

我想从这个文件中获取所有函数名称。

另外,我还想获取每个函数的起始行号和结束行号。

有什么解决办法吗?

我可以使用 clang 来实现它吗?

小智 5

您可以编译该文件并在生成的二进制文件上使用 nm http://en.wikipedia.org/wiki/Nm_(Unix) 。然后,您可以解析 nm 的输出来获取函数名称。

如果要获取行号,可以使用函数名称来解析源文件中的行号。

所有这些都可以通过一个简短的 perl 脚本来完成,该脚本对 gcc 和 nm 进行系统调用。

当然,这是假设您使用的是 *nix 系统......