A cargo subcommand that displays the assembly generated for a function.
cargo-disasmdoes not require recompiling your project, it disassembles and finds symbols in your binary directly.
This is still under heavy development
For now
cargo-disasmcan disassemble symbols fromELFobject files for binary crates and make use of DWARF debug information for symbol discovery. Check here to see the current progress.
sh
cargo install cargo-disasm
To view the assembly of a function foo::bar::baz(), a function baz in module
bar in crate foo, the subcommand can be run from your crate's root directory:
```sh
cargo build cargo disasm foo::bar::baz ```
Sometimes cargo-disasm has trouble finding your symbols in release mode. To make
sure that cargo-disasm is searching all sources available, --symsrc=all can be
passed as an argument like so:
```sh
cargo build --release cargo disasm --release --symsrc=all foo::bar::baz ```
This solution is temporary and the default
--symsrc=autoshould be able to figure this out on its own soon.
Windows
- [ ] PE/COFF file disassembly and symbol discovery
- [ ] use PDB for symbol discovery and line information
MacOS
- [ ] Mach file disassembly and symbol discovery
- [ ] use dSYM (DWARF) for symbol discovery and line information
Linux
- [x] ELF file disassembly and symbol discovery
- [x] use DWARF for symbol discovery and line information