17 个版本
使用旧的 Rust 2015
0.1.16 | 2018 年 6 月 7 日 |
---|---|
0.1.15 | 2018 年 6 月 7 日 |
0.1.14 | 2018 年 5 月 24 日 |
0.1.13 | 2018 年 4 月 10 日 |
0.1.10 | 2018 年 2 月 27 日 |
#295 在 Cargo 插件 中
644 每月下载量
89KB
2K SLoC
cargo-asm
一个
cargo
子命令,显示为 Rust 源代码生成的汇编或 llvm-ir。
安装
cargo install cargo-asm
示例
要查看 crate lib_crate
中模块 bar
的函数 double_n
的汇编,并带有其对应的 Rust 代码,请转到 crate 的根目录
git clone [email protected]:gnzlbg/cargo-asm.git
cd cargo-asm/cargo-asm-test/lib_crate
并输入
cargo asm lib_crate::bar::double_n --rust
输出
(注意:在优化后,rustc 发出的源代码映射信息有时并不完美,例如在这个例子中。请谨慎对待。)
要查看 LLVM IR 类型
cargo llvm-ir lib_crate::bar::double_n
功能
-
平台支持
- OS:Linux、Windows 和 MacOSX。
- Rust:nightly 和 stable。
- 架构:x86、x86_64、arm、aarch64、powerpc、mips、sparc。
-
显示
- Intel 或 AT&T 语法中的汇编。
- 与汇编对应的 Rust 源代码。
- JSON AST 以供进一步处理。
- LLVM-IR。
-
查询
- 函数,例如:
foo
cargo asm crate::path::to::foo
- 固有方法,例如:类型
Foo
的foo
(即Foo::foo
)
cargo asm crate::path::to::Foo::foo
- 特质的实现方法,例如:类型
Foo
的特质Bar
的bar
cargo asm "<crate::path::to::Foo as crate::path::to::Bar>::bar"
- 泛型函数、方法等。
- 函数,例如:
要在一个路径中搜索名为 foo
的函数,可以只输入 cargo asm foo
。该命令将返回所有同名函数的列表,而不考虑路径。
许可证
本项目许可协议为以下之一
- Apache License,版本 2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交包含在此项目中的任何贡献,将采用上述双重许可方式,不附加任何额外条款或条件。
依赖项
~3–12MB
~113K SLoC