LLVM-ADDR2LINE(1)

πŸ’… LLVM-ADDR2LINE(1) β€” the llvm manual, bestie edition

okay so this is the LLVM-ADDR2LINE(1) page from the LLVM manual set, and it's genuinely one of the shorter ones, so we're gonna get through it together, no stress 🌸

✨ NAME ✨

llvm-addr2line β€” it's literally a drop-in replacement for addr2line. that's the whole pitch, that's the vibe πŸŽ€

✨ SYNOPSIS ✨

llvm-addr2line [options]

like, that's it. options go in, magic comes out ✨

πŸ¦‹ DESCRIPTION πŸ¦‹

so llvm-addr2line is an alias for the llvm-symbolizer(1) tool (there's a link to llvm-symbolizer.html in the original docs, iykyk) β€” but with different defaults. and the whole goal of that? to make it a drop-in replacement for GNU's addr2line. periodt πŸ’…

here are some of those differences, and bestie, you're gonna wanna read these because they change everything about how it behaves:

  • llvm-addr2line interprets all addresses as hexadecimal and ignores an optional 0x prefix. meanwhile llvm-symbolizer tries to figure out the base from the literal's prefix, and defaults to decimal if there's no prefix. so no prefix = hex here, decimal there. iconic difference, honestly πŸ™ˆ
  • llvm-addr2line defaults not to print function names. use -f to enable that (original page links to llvm-symbolizer.html#llvm-symbolizer-opt-f).
  • llvm-addr2line defaults not to demangle function names. use -C to switch the demangling on (link in the original: llvm-symbolizer.html#llvm-symbolizer-opt-c).
  • llvm-addr2line defaults not to print inlined frames. use -i to show inlined frames for a source code location in an inlined function (original link: llvm-symbolizer.html#llvm-symbolizer-opt-i).
  • llvm-addr2line uses --output-style=GNU by default (original link: llvm-symbolizer.html#llvm-symbolizer-opt-output-style). default aesthetic is GNU. slay πŸ‘‘
  • llvm-addr2line parses options from the environment variable LLVM_ADDR2LINE_OPTS instead of from LLVM_SYMBOLIZER_OPTS. yes, different env var, don't @ me 😭
  • llvm-addr2line accepts an address with a + prefix, e.g. +0x00777fff. This is treated as a symbol name by llvm-symbolizer. (that one's important, don't skip it β€” it's not an address to them, it's a symbol name fr fr πŸ’€)
lowkey the theme here is: everything that's opt-in over in llvm-symbolizer land is still opt-in here, but the output style and the hex interpretation and the env var are already flipped for you. know the defaults before you go blaming the tool 🫢

🌈 SEE ALSO 🌈

  • llvm-symbolizer(1) β€” the actual main character this whole thing is aliasing (original link: llvm-symbolizer.html) πŸ’–

⭐ Author ⭐

Maintained by the LLVM Team (https://llvm.org/). they're doing great, honestly 🫢

2003-2026, LLVM Project


and that's the whole page, bestie!! πŸ¦‹ go forth and symbolize your addresses πŸ’œ

sign-off: this little rewrite is dated 2026-05-15, and it's page 21 of the LLVM manual set β€” LLVM-ADDR2LINE(1) forever, mwah πŸ’‹

πŸ“¦ where this page comes from