首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ELF的堆栈大小元数据有什么用途?

ELF的堆栈大小元数据有什么用途?
EN

Unix & Linux用户
提问于 2022-05-28 18:27:53
回答 1查看 156关注 0票数 1

当时我正在读“铁锈不稳定书”,我看到了emit-stack-sizes的一个新特性,

rustc标志-Z emit-stack-sizes使LLVM发出堆栈大小元数据。

它接着说

注意:这个LLVM特性只支持LLVM 8.0中的ELF对象格式。如果将此标志与使用其他对象格式(例如macOS和Windows)的目标一起使用,将导致忽略该标志。

它似乎正在使用的LLVM特性是EmitStackSizeSection选项。知道堆栈大小的目的是什么?工具使用这个吗?这是ELF的官方特性吗?如果是的话,内核会使用它吗?这似乎被记录在各节下的ELF元数据.stack_sizes.rel.stack_sizes,以及.rela.stack_sizes中。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-05-28 18:30:10

这一点在“[eRFC] add-Z发射-堆栈大小”最初的RFC中有所概述。

最终目标是支持对堆栈使用情况的整个程序分析,以证明编译时没有堆栈溢出。在缺少MMU / MPU且堆栈溢出可能破坏内存的系统中,这种属性非常重要。在具有防堆栈溢出保护的系统中,可以使用这种证明来选择退出运行时检查(例如堆栈探测或MPU)。

在这个博客条目,“实现静态堆栈使用分析工具”里。这个工具,带铁锈,可以在这里使用。

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

https://unix.stackexchange.com/questions/704212

复制
相关文章

相似问题

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