17 releases
Uses old Rust 2015
| 0.1.16 | Jun 7, 2018 |
|---|---|
| 0.1.15 | Jun 7, 2018 |
| 0.1.14 | May 24, 2018 |
| 0.1.13 | Apr 10, 2018 |
| 0.1.10 | Feb 27, 2018 |
#382 in Cargo plugins
407 downloads per month
89KB
2K
SLoC
cargo-asm
A
cargosubcommand that displays the assembly or llvm-ir generated for Rust source code.
Install
cargo install cargo-asm
Example
To view the assembly of the function double_n in the module bar of the crate
lib_crate annotated with its corresponding Rust code, go to the crate's root
directory
git clone git@github.com:gnzlbg/cargo-asm.git
cd cargo-asm/cargo-asm-test/lib_crate
and type:
cargo asm lib_crate::bar::double_n --rust
which outputs:

(note: the source-code mapping information emitted by rustc after optimizations is sometimes far from perfect, like in this case. Take it with a grain of salt.)
To view the LLVM IR type
cargo llvm-ir lib_crate::bar::double_n
Features
-
Platform support:
- OS: Linux, Windows, and MacOSX.
- Rust: nightly and stable.
- Architectures: x86, x86_64, arm, aarch64, powerpc, mips, sparc.
-
Displaying:
- Assembly in Intel or AT&T syntax.
- Corresponding Rust source code alongside assembly.
- JSON AST for further processing.
- LLVM-IR.
-
Querying:
- functions, for example:
foo:
cargo asm crate::path::to::foo- inherent method, for example:
fooof a typeFoo(that is,Foo::foo):
cargo asm crate::path::to::Foo::foo- trait method implementations, for example:
barof the traitBarfor the typeFoo:
cargo asm "<crate::path::to::Foo as crate::path::to::Bar>::bar"- generic functions, methods, ...
- functions, for example:
To search for a function named foo in some path, one can just type cargo asm foo. The command will return a list of all similarly named functions
independently of the path.
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~4–11MB
~120K SLoC