LLVM-SYMBOLIZER(1) LLVM LLVM-SYMBOLIZER(1) (NAME) llvm-symbolizer - (SYNOPSIS) llvm-symbolizer [] [...] (DESCRIPTION) llvm-symbolizer . (Symbolizer Markup) <> --filter-markup (symbolize) . . . . . . (object file) . BUILDID: (build ID) (hex) . . FILE: ( ). "DATA" "CODE" . "CODE" . DATA . llvm-symbolizer LLVM_SYMBOLIZER_OPTS . LLVM_SYMBOLIZER_OPTS llvm-symbolizer (runtime) . (EXAMPLES) . (linkage) C C++ ( --demangle ). // test.h extern "C" inline int foz() { return 1234; } // test.cpp #include "test.h" int bar=42; int foo() { return bar; } int baz() { volatile int k = 42; return foz() + k; } int main() { return foo() + baz(); } : $ clang -g test.cpp -o test.elf $ clang -g -O2 test.cpp -o inlined.elf - : $ llvm-symbolizer --obj=test.elf 0x4004d0 0x400490 foz /tmp/test.h:1:0 baz() /tmp/test.cpp:11:0 - : $ cat addr.txt 0x4004a0 0x400490 0x4004d0 $ llvm-symbolizer --obj=test.elf < addr.txt main /tmp/test.cpp:15:0 baz() /tmp/test.cpp:11:0 foz /tmp/./test.h:1:0 - : $ llvm-symbolizer "test.elf 0x400490" "FILE:inlined.elf 0x400480" baz() /tmp/test.cpp:11:0 foo() /tmp/test.cpp:8:10 $ cat addr2.txt FILE:test.elf 0x4004a0 inlined.elf 0x400480 $ llvm-symbolizer < addr2.txt main /tmp/test.cpp:15:0 foo() /tmp/test.cpp:8:10 - BUILDID FILE: $ llvm-symbolizer "FILE:test.elf 0x400490" "DATA BUILDID:123456789abcdef 0x601028" baz() /tmp/test.cpp:11:0 bar 6295592 4 $ cat addr3.txt FILE:test.elf 0x400490 DATA BUILDID:123456789abcdef 0x601028 $ llvm-symbolizer < addr3.txt baz() /tmp/test.cpp:11:0 bar 6295592 4 - CODE DATA: $ llvm-symbolizer --obj=test.elf "CODE 0x400490" "DATA 0x601028" baz() /tmp/test.cpp:11:0 bar 6295592 4 $ cat addr4.txt CODE test.elf 0x4004a0 DATA inlined.elf 0x601028 $ llvm-symbolizer < addr4.txt main /tmp/test.cpp:15:0 bar 6295592 4 - : /tmp/foo/test.cpp . --basenames --relativenames . $ pwd /tmp $ clang -g foo/test.cpp -o test.elf $ llvm-symbolizer --obj=test.elf 0x4004a0 main /tmp/foo/test.cpp:15:0 $ llvm-symbolizer --obj=test.elf 0x4004a0 --basenames main test.cpp:15:0 $ llvm-symbolizer --obj=test.elf 0x4004a0 --relativenames main foo/test.cpp:15:0 - : $ llvm-symbolizer --obj=test.elf main main /tmp/test.cpp:14:0 $ llvm-symbolizer --obj=test.elf "CODE foz" foz /tmp/test.h:1:0 - --skip-line-zero ( ): // test.c int foo = 0; int x = 1234; int main() { if (x) return foo; else return x; } : $ clang -g -O2 -S test.c -o test.s $ llvm-mc -filetype=obj -triple=x86_64-unknown-linux test.s -o test.o $ llvm-symbolizer --obj=test.o --skip-line-zero 0xa main /tmp/test.c:5:7 (approximate) --adjust-vma . (relocated) . --skip-line-zero (line-table) . "approximate" () . --basenames, -s . --build-id (build ID) . --obj . --color [=] --filter-markup . auto . --color --color=always . --debug-file-directory .build-id (stripped) . . --debuginfod, --no-debuginfod debuginfod . debuginfod libcurl (LLVM_ENABLE_CURL) DEBUGINFOD_URLS . --demangle, -C (mangled) (demangled) ( _Z3bazv baz() foz ). true . --dwp DWP CU DWARF . --fallback-debug-path (GNU debug link) . --filter-markup (Symbolizer Markup) <> . : o {{{hexdict}}} o {{{dumpfile}}} {{{bt}}} : #[.]
:: (+) (inlined) . (callee) (caller) .
. . . --functions [=], -f ( : /linkage). linkage . --help, -h . --inlining, --inlines, -i (inlined) . . --no-inlines . --no-demangle (demangled) . --obj , --exe, -e . - . --build-id . --output-style . LLVM . GNU addr2line . LLVM : o . o . o (topmost caller) . o (discriminator) . -fdebug-info-for-profiling clang . JSON JSON . stdin JSON . . $ llvm-symbolizer --obj=inlined.elf 0x4004be 0x400486 -p baz() at /tmp/test.cpp:11:18 (inlined by) main at /tmp/test.cpp:15:0 foo() at /tmp/test.cpp:6:3 $ llvm-symbolizer --output-style=LLVM --obj=inlined.elf 0x4004be 0x400486 -p --no-inlines main at /tmp/test.cpp:11:18 foo() at /tmp/test.cpp:6:3 $ llvm-symbolizer --output-style=GNU --obj=inlined.elf 0x4004be 0x400486 -p --no-inlines baz() at /tmp/test.cpp:11 foo() at /tmp/test.cpp:6 $ clang -g -fdebug-info-for-profiling test.cpp -o profiling.elf $ llvm-symbolizer --output-style=GNU --obj=profiling.elf 0x401167 -p --no-inlines main at /tmp/test.cpp:15 (discriminator 2) $ llvm-symbolizer --output-style=JSON --obj=inlined.elf 0x4004be 0x400486 -p [ { "Address": "0x4004be", "ModuleName": "inlined.elf", "Symbol": [ { "Column": 18, "Discriminator": 0, "FileName": "/tmp/test.cpp", "FunctionName": "baz()", "Line": 11, "StartAddress": "0x4004be", "StartFileName": "/tmp/test.cpp", "StartLine": 9 }, { "Column": 0, "Discriminator": 0, "FileName": "/tmp/test.cpp", "FunctionName": "main", "Line": 15, "StartAddress": "0x4004be", "StartFileName": "/tmp/test.cpp", "StartLine": 14 } ] }, { "Address": "0x400486", "ModuleName": "inlined.elf", "Symbol": [ { "Column": 3, "Discriminator": 0, "FileName": "/tmp/test.cpp", "FunctionName": "foo()", "Line": 6, "StartAddress": "0x400486", "StartFileName": "/tmp/test.cpp", "StartLine": 5 } ] } ] --pretty-print, -p . --inlining (inlined by) . JSON JSON . JSON . $ llvm-symbolizer --obj=inlined.elf 0x4004be --inlining --pretty-print baz() at /tmp/test.cpp:11:18 (inlined by) main at /tmp/test.cpp:15:0 --print-address, --addresses, -a . false . $ llvm-symbolizer --obj=inlined.elf --print-address 0x4004be 0x4004be baz() /tmp/test.cpp:11:18 main /tmp/test.cpp:15:0 $ llvm-symbolizer --obj=inlined.elf 0x4004be --pretty-print --print-address 0x4004be: baz() at /tmp/test.cpp:11:18 (inlined by) main at /tmp/test.cpp:15:0 --print-source-context-lines N . $ llvm-symbolizer --obj=test.elf 0x400490 --print-source-context-lines=3 baz() /tmp/test.cpp:11:0 10 : volatile int k = 42; 11 >: return foz() + k; 12 : } --relativenames . . --verbose . $ llvm-symbolizer --obj=inlined.elf --verbose 0x4004be baz() Filename: /tmp/test.cpp Function start filename: /tmp/test.cpp Function start line: 9 Function start address: 0x4004b6 Line: 11 Column: 18 main Filename: /tmp/test.cpp Function start filename: /tmp/test.cpp Function start line: 14 Function start address: 0x4004b0 Line: 15 Column: 18 --version, -v . @ . --dia Windows DIA SDK . DIA SDK llvm-symbolizer . MACH-O (MACH-O SPECIFIC OPTIONS) --default-arch ( Mach-O ) . binary_name:arch_name ( ). archive.a(member.o):arch . . . $ cat addr.txt /tmp/mach_universal_binary:i386 0x1f84 /tmp/mach_universal_binary:x86_64 0x100000f24 /tmp/archive.a(member.o):ppc 0x1000 /tmp/archive.a(member.o):ppc64 0x2000 $ llvm-symbolizer < addr.txt _main /tmp/source_i386.cc:8 _main /tmp/source_x86_64.cc:8 _foo /tmp/source_ppc.cc:12 _foo /tmp/source_ppc64.cc:12 --dsym-hint .dSYM . . (EXIT STATUS) llvm-symbolizer 0 . . (SEE ALSO) llvm-addr2line(1) (AUTHORS) LLVM (). (COPYRIGHT) 2003-2026, LLVM Project 22 2026-07-15 LLVM-SYMBOLIZER(1)