[llvm-exegesis] [NFC] Fixing typo.
[llvm-complete.git] / docs / CommandGuide / llvm-symbolizer.rst
blobb794f56246ff01098710f7d04015511a8ac382d6
1 llvm-symbolizer - convert addresses into source code locations
2 ==============================================================
4 SYNOPSIS
5 --------
7 :program:`llvm-symbolizer` [options]
9 DESCRIPTION
10 -----------
12 :program:`llvm-symbolizer` reads object file names and addresses from standard
13 input and prints corresponding source code locations to standard output.
14 If object file is specified in command line, :program:`llvm-symbolizer` 
15 processes only addresses from standard input, the rest is output verbatim.
16 This program uses debug info sections and symbol table in the object files.
18 EXAMPLE
19 --------
21 .. code-block:: console
23   $ cat addr.txt
24   a.out 0x4004f4
25   /tmp/b.out 0x400528
26   /tmp/c.so 0x710
27   /tmp/mach_universal_binary:i386 0x1f84
28   /tmp/mach_universal_binary:x86_64 0x100000f24
29   $ llvm-symbolizer < addr.txt
30   main
31   /tmp/a.cc:4
32   
33   f(int, int)
34   /tmp/b.cc:11
36   h_inlined_into_g
37   /tmp/header.h:2
38   g_inlined_into_f
39   /tmp/header.h:7
40   f_inlined_into_main
41   /tmp/source.cc:3
42   main
43   /tmp/source.cc:8
45   _main
46   /tmp/source_i386.cc:8
48   _main
49   /tmp/source_x86_64.cc:8
50   $ cat addr2.txt
51   0x4004f4
52   0x401000
53   $ llvm-symbolizer -obj=a.out < addr2.txt
54   main
55   /tmp/a.cc:4
57   foo(int)
58   /tmp/a.cc:12
59   $cat addr.txt
60   0x40054d
61   $llvm-symbolizer -inlining -print-address -pretty-print -obj=addr.exe < addr.txt
62   0x40054d: inc at /tmp/x.c:3:3
63    (inlined by) main at /tmp/x.c:9:0
64   $llvm-symbolizer -inlining -pretty-print -obj=addr.exe < addr.txt
65   inc at /tmp/x.c:3:3
66    (inlined by) main at /tmp/x.c:9:0
68 OPTIONS
69 -------
71 .. option:: -obj, -exe, -e
73   Path to object file to be symbolized.
75 .. option:: -functions[=<none|short|linkage>], -f
77   Specify the way function names are printed (omit function name,
78   print short function name, or print full linkage name, respectively).
79   Defaults to ``linkage``.
81 .. option:: -use-symbol-table
83  Prefer function names stored in symbol table to function names
84  in debug info sections. Defaults to true.
86 .. option:: -demangle, -C
88  Print demangled function names. Defaults to true.
90 .. option:: -no-demangle
92  Don't print demangled function names.
94 .. option:: -inlining, -inlines, -i
96  If a source code location is in an inlined function, prints all the
97  inlnied frames. Defaults to true.
99 .. option:: -default-arch
101  If a binary contains object files for multiple architectures (e.g. it is a
102  Mach-O universal binary), symbolize the object file for a given architecture.
103  You can also specify architecture by writing ``binary_name:arch_name`` in the
104  input (see example above). If architecture is not specified in either way,
105  address will not be symbolized. Defaults to empty string.
107 .. option:: -dsym-hint=<path/to/file.dSYM>
109  (Darwin-only flag). If the debug info for a binary isn't present in the default
110  location, look for the debug info at the .dSYM path provided via the
111  ``-dsym-hint`` flag. This flag can be used multiple times.
113 .. option:: -print-address, -addresses, -a
115  Print address before the source code location. Defaults to false.
117 .. option:: -pretty-print, -p
119  Print human readable output. If ``-inlining`` is specified, enclosing scope is
120  prefixed by (inlined by). Refer to listed examples.
122 .. option:: -basenames, -s
124  Strip directories when printing the file path.
126 .. option:: -adjust-vma=<offset>
128  Add the specified offset to object file addresses when performing lookups. This
129  can be used to perform lookups as if the object were relocated by the offset.
131 EXIT STATUS
132 -----------
134 :program:`llvm-symbolizer` returns 0. Other exit codes imply internal program error.