首页 > 解决方案 > 如何获取 ELF 部分中所有对象的列表?

问题描述

我的库中有一组静态对象,我需要library_main()在下面的示例中访问这些对象。在 C 中,我可以将它放在 ELF 部分中,获取该部分的开始和结束地址,并使用指针数学来遍历对象。在 Rust 中是否有一种惯用的方式来做到这一点?

是否有类似 C 的 ELF 方法或任何其他推荐的方法,我可以在我的库中获取静态对象的列表/数组?

fn foo() {
    #[link_section = ".early_init"]
    static FOO: usize = 10;
}

fn bar() {
    #[link_section = ".early_init"]
    static BAR: usize = 10;
}

fn library_main() {
    // I need to access variables FOO and BAR here and do
    // some initializations with them before I do anything else
}

标签: rustelf

解决方案


推荐阅读