atosl
A fast, local symbolication CLI and Rust library — an atos-style tool that turns
raw binary addresses into function names and source locations.
Get started View on GitHub 中文文档
What is atosl?
atosl resolves addresses to symbols using DWARF debug info when it is
available, and falls back to the symbol table when it is not. It is built for
cross-platform tooling, CI pipelines, and crash-processing utilities that need
atos-style symbolication without depending on Apple’s host environment.
Unlike Apple’s atos, it runs anywhere, ships as a single binary, and exposes a
small embeddable Rust API.
30-second quickstart
# Install
cargo install atosl
# Symbolize one address against a dSYM bundle
atosl -o MyApp.app.dSYM -l 0x100000000 0x100001234
# Symbolize several addresses, machine-readable
atosl -o MyApp.app.dSYM -l 0x100000000 --format json 0x100001234 0x100004321
# Pipe a list of addresses through, one ndjson result per line
printf '0x100001234\n0x100004321\n' | atosl -o MyApp.app.dSYM -l 0x100000000 --format json-lines
What it handles
- Executables, object files, dSYM payloads, and
.dSYMbundle directories - A directory of symbols searched by
--uuidor build-id - Mach-O fat binaries with explicit slice selection (
--arch,--uuid) - Inline call-stack expansion (
--inline-frames, likeatos -i) - Addresses from the command line, a file (
--input), or stdin - Output as
text,json,json-pretty, or streamingjson-lines - Separate ELF debug files via
.gnu_debuglink, build-id, or the debuginfod cache
Where to go next
| Guide | What it covers |
|---|---|
| Installation | Installing from crates.io or building from source |
| Getting started | Your first end-to-end symbolication |
| Address modes | Load address vs. file offsets, and the atos -offset equivalent |
| Input sources | dSYM bundles, directories, files, and stdin |
| Fat binaries & slices | Selecting an arch/UUID slice from a universal binary |
| Inline frames | Expanding inlined call stacks |
| Output formats | Text and JSON shapes, with a field reference |
| Separate debug files | ELF .gnu_debuglink, build-id, debuginfod |
| Library API | Using atosl as a Rust crate |
| Troubleshooting | Reading errors and known limitations |
A full Chinese version of these guides is available under 中文文档.