GSOC项目咨询:-print-gc-sections场景下的surviving symbols是什么?
关于
-print-gc-sections中Surviving Symbols的定义 核心定义:在链接器执行
-gc-sections(垃圾回收未使用段)操作时,surviving symbols(存活符号)就是那些没被标记为"垃圾"、最终会保留在输出文件(可执行程序/库)里的符号。简单说就是链接器判定为「有用、必须保留」的符号。存活判定的常见场景:
- 被程序入口(比如
main函数)、其他已存活符号直接/间接引用的符号 - 通过
--undefined(或短选项-u)显式指定要保留的符号 - 位于链接脚本里用
KEEP()指令标记为必须保留的段中的符号 - 动态链接依赖的符号、全局构造/析构函数这类特殊符号,链接器默认会保留
- 被程序入口(比如
和
-print-gc-sections的关系:当你加了-print-gc-sections参数,链接器会打印出被回收的段信息。而surviving symbols就是那些不在被回收段里,或者即使在相关段但因上述原因被"豁免"回收的符号——是垃圾回收流程结束后剩下的符号集合。
内容的提问来源于stack exchange,提问作者sahil patidar
相关产品推荐
相关产品推荐

