其他分享
首页 > 其他分享> > c – 使用GCC查找无法访问的功能(“死代码”)

c – 使用GCC查找无法访问的功能(“死代码”)

作者:互联网

嘿伙计们,我一直在寻找一种在(非常)大C项目中找到静态无法访问的函数的方法.我曾尝试使用doxygen和其他静态分析工具,但似乎项目太复杂,无法处理.最后我决定使用GCC工具(g,gprof,gcov等)是最安全的选择,虽然我无法弄清楚如何做到这一点.
我认为g优化消除了静态无法访问的函数,但我不确定如何获取它消除的函数的名称.

你有什么建议吗?

谢谢!

解决方法:

死代码优化通常由链接器完成 – 编译器没有概述.但是,编译器可能已经删除了未使用的静态函数(因为它们具有内部链接).

因此,您不应该查看GCC选项,而是选择ld选项.看来你想要–print-gc-sections.但是,请注意,您可能希望GCC将每个函数放在其自己的部分-ffunction-sections中.默认情况下,GCC会将所有函数放在同一部分中,并且ld不够智能以消除未使用的函数 – 它只能消除未使用的部分.

标签:c,gcc,dead-code
来源: https://codeday.me/bug/20191006/1861742.html