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 .dSYM bundle directories
  • A directory of symbols searched by --uuid or build-id
  • Mach-O fat binaries with explicit slice selection (--arch, --uuid)
  • Inline call-stack expansion (--inline-frames, like atos -i)
  • Addresses from the command line, a file (--input), or stdin
  • Output as text, json, json-pretty, or streaming json-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 中文文档.