【发布时间】:2015-05-30 18:52:41
【问题描述】:
给定一个公开符号的目标文件,我如何确定该符号是否也在内部使用?
我的目标是死函数检测。我已经有能力(通过readelf)查找它是否从另一个目标文件中使用,但是当它仅在内部使用时会失败。
如果重要的话,我正在使用 C++
【问题讨论】:
-
内联和模板可能会让这变得困难......
-
模板大多不是问题 b/c 它们通常仅在使用时实例化(例外是显式专业化),因此您只能在我不的情况下看到它们> 寻找。考虑到一些调试器能够报告内联函数,尽管没有实际的堆栈帧,内联也是可以解决的。
-
"死函数检测"——为了警告?还是省略? LTO 不能有效地做到后者吗?
-
用于检测,送至删除源代码。
标签: gcc clang object-code