{"id":15389296,"url":"https://github.com/m4b/cargo-sym","last_synced_at":"2025-04-15T20:23:34.735Z","repository":{"id":57539075,"uuid":"73157273","full_name":"m4b/cargo-sym","owner":"m4b","description":"Prints various binary symbols in your crate","archived":false,"fork":false,"pushed_at":"2017-03-15T04:56:01.000Z","size":41,"stargazers_count":13,"open_issues_count":3,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-29T01:02:53.031Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m4b.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-11-08T06:44:52.000Z","updated_at":"2023-08-21T11:26:01.000Z","dependencies_parsed_at":"2022-09-26T18:00:32.171Z","dependency_job_id":null,"html_url":"https://github.com/m4b/cargo-sym","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4b%2Fcargo-sym","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4b%2Fcargo-sym/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4b%2Fcargo-sym/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4b%2Fcargo-sym/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m4b","download_url":"https://codeload.github.com/m4b/cargo-sym/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248643471,"owners_count":21138441,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T14:59:56.621Z","updated_at":"2025-04-15T20:23:34.717Z","avatar_url":"https://github.com/m4b.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cargo-sym [![Build Status](https://travis-ci.org/m4b/cargo-sym.svg?branch=master)](https://travis-ci.org/m4b/cargo-sym)\nPrints various binary symbols in your crate. Also experimentally disassembles.\n\nThis uses capstone for disassembly, so it will compile faster if you have capstone installed as a system library.\n\n# Usage\n\nFirst install:\n\n`cargo install cargo-sym`\n\nor via git:\n\n`cargo install --git https://github.com/m4b/cargo-sym -f`\n\nThen:\n\n1. `cargo sym` will print every debugging symbol it finds in the first valid binary target in `target/\u003ctarget\u003e/debug`. This can be, for example:\n\n  a.`target/debug` (this is used if it doesn't find a special target, like the following)\n  \n  b. `target/x86_64-unknown-linux-musl/debug`\n\n2. `cargo sym -C` will print every debugging symbol demangled\n3. `cargo sym -e` will print every exported symbol importable by other binaries\n4. `cargo sym -Ce` will do `-C` and `-e` together :]\n5. `cargo sym -d` will disassemble your binary, objdump style. **experimental**\n6. `cargo sym -d -C /bin/ls` will disassemble the binary `ls` at `/bin/` (actually most distros strip `/bin/ls` so it actually won't)\n7. `cargo sym -Cd --target=aarch64-linux-android` will disassemble your crates binary at `target/aarch64-linux-android/debug/\u003ccrate_name\u003e`\n8. `cargo sym -C --release -x example` will print the symbols from the example binary you compiled in release mode (at `target/release/examples/example`)\n9. `cargo sym -Cd --target=debug -x main` will disassemble the example binary `main` in the regular debug location `target/debug/examples/main`\n\nTry `cargo sym --help` for more information!\n\n# TODO:\n\n1. Target selector is not. There are a few fixmes to make it nicer. (easy)\n2. ARM 32-byte printer not completely correct when in thumb mode, should reverse second 8 byte block. (easy)\n3. Need to properly print got, plt, and plt.got and iterate through sections in a more principled manner. (not to easy)\n4. When goblin gets a mach and PE backend (which I keep saying will be soon), update the various backends (tedious, hard, requires knowledge of backend formats)\n\nPRs welcome of course :)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm4b%2Fcargo-sym","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm4b%2Fcargo-sym","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm4b%2Fcargo-sym/lists"}