cargo-asm
A
cargo
subcommand that displays the generated assembly of 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 and type:
$ cargo asm lib_crate::bar::double_n --rust
which outputs:
Features
-
Platform support:
- OS: Linux, Windows, and MacOSX.
- Rust: nightly (due to: https://github.com/rust-lang/rust/issues/35741).
- 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.
-
Querying:
- functions, for example:
foo
:
$ cargo asm crate::path::to::foo
- inherent method, for example:
foo
of a typeFoo
(that is,Foo::foo
):
$ cargo asm crate::path::to::Foo::foo
- trait method implementations, for example:
bar
of the traitBar
for the typeFoo
:
$ cargo asm "<crate::path::to::Foo as crate::path::to::Bar>::bar"
- generic functions, methods, ...
- functions, for example:
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.