首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C/C++中未使用函数的识别

C/C++中未使用函数的识别
EN

Stack Overflow用户
提问于 2012-05-24 07:14:56
回答 2查看 15.7K关注 0票数 2

可能重复: 在大型C++遗留应用程序中查找“死代码”

我的项目有很多C源文件,每个源文件都有很多全局函数。其中许多都不再被任何调用者引用。是否有一种简单的方法来识别哪些函数根本没有被任何人引用?

VC生成的地图文件似乎很有用。但是,我不确定如何/何时在映射文件中列出函数名。

EN

回答 2

Stack Overflow用户

发布于 2012-05-24 07:23:48

您可以使用CCCC (免费的、开源的),它为您的程序提供了许多度量标准。另一个选择是覆盖度 (不是免费的)。

这个问题可能是这个问题的重复:遗留C/C++项目中的死码检测

票数 4
EN

Stack Overflow用户

发布于 2012-05-24 07:48:36

我不认为地图文件会有任何用处。如果它和我见过的其他地图文件一样,它不会指示在哪里(如果在任何地方)符号被使用-只在它被定义的地方。您可以做的是在对象文件上运行dumpbin:例如,dumpbin /relocations实际上将显示符号的每一种用法,其中包含可能需要重新定位的地址(实际上,具有静态生存期的函数和变量)。然后,在输出上使用常用的工具来确定您感兴趣的函数是否存在。(作为主要从事Unix工作的人,我已经安装了CygWin并将使用grep。我不熟悉Windows下不同Unix工具的本机对应物。)

编写一个小脚本非常简单(使用Python或一些类似的脚本语言),它将解析每个对象文件的dumpbin /symbols输出,获取您定义的所有函数的名称,然后解析dumpbin /relocations的输出,给出您使用的函数的列表,最后进行两个函数的区别。(微软似乎已经想方设法让dumpbin的输出难以使用,但这并不难;你只需要知道该忽略哪些行就行了。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10732832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档