首页 > 解决方案 > 如何使用 gcc 编译器在 C 语言项目中查找死代码

问题描述

我需要使用 gcc 编译器在我的“C”语言项目(具有多个 C 文件)中找到死代码(未使用的函数)。请让我知道 gcc 选项以查找死代码。对你的帮助表示感谢。

标签: cgccdead-code

解决方案


对于未使用的静态函数,请参阅Ed King回答

对于全局函数,您可以尝试以下操作:构建项目两次,一次像往常一样,一次使用-ffunction-sections -Wl,--gc-sections(第一次是编译器标志,第二次是链接器标志)。然后,您可以nm在生成的二进制文件上运行以获得两次运行的符号列表。链接器将在第二次运行中删除未使用的函数,这就是您的死函数列表。

这假设有一个像 ELF 这样的公共目标,binutils 链接器,并且最终的二进制文件没有被剥离它们的符号表。


推荐阅读