#symbol-table #symbol #table #kernel #generation #ksymtab

无需std rsymtab

为Rust包生成类似ksymtab的导出符号表

1个不稳定版本

0.1.0 2023年10月13日

#20 in #symbol-table

MIT 许可证

6KB
67

rsymtab

bla


lib.rs:

这是一个生成导出符号列表的crate,类似于Linux内核中ksymtab的工作方式,但用于Rust包。

基本思路是,您可以通过在项上添加 #[export] 属性来导出项,然后您可以通过调用 symbols 函数来访问所有导出的符号。

示例

fn main() {
    println!("{:?}", rsymtab::symbols());
}

#[rsymtab::export]
fn foo() {}

#[rsymtab::export]
fn bar() {}

#[rsymtab::export]
static mut FOO: u32 = 5;

兼容性

注意:此crate目前只能在Linux上运行。

这是因为它使用链接器脚本来实现创建符号表的一些魔法。此外,仅支持支持指定多个链接器脚本的链接器,否则此crate将覆盖默认的链接器脚本。

依赖关系

~320–780KB
~19K SLoC