Alexey Samsonov | 14809fd | 2013-03-01 07:58:27 +0000 | [diff] [blame] | 1 | llvm-symbolizer - convert addresses into source code locations |
| 2 | ============================================================== |
| 3 | |
| 4 | SYNOPSIS |
| 5 | -------- |
| 6 | |
| 7 | :program:`llvm-symbolizer` [options] |
| 8 | |
| 9 | DESCRIPTION |
| 10 | ----------- |
| 11 | |
| 12 | :program:`llvm-symbolizer` reads object file names and addresses from standard |
Alexey Samsonov | 42c9ecb | 2013-12-24 19:33:22 +0000 | [diff] [blame] | 13 | input and prints corresponding source code locations to standard output. |
Mike Aizatsky | ba07fc7 | 2016-01-07 23:57:41 +0000 | [diff] [blame] | 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. |
Alexey Samsonov | 14809fd | 2013-03-01 07:58:27 +0000 | [diff] [blame] | 17 | |
| 18 | EXAMPLE |
| 19 | -------- |
| 20 | |
| 21 | .. code-block:: console |
| 22 | |
| 23 | $ cat addr.txt |
| 24 | a.out 0x4004f4 |
| 25 | /tmp/b.out 0x400528 |
| 26 | /tmp/c.so 0x710 |
Alexey Samsonov | 8175bc3 | 2013-06-28 08:15:40 +0000 | [diff] [blame] | 27 | /tmp/mach_universal_binary:i386 0x1f84 |
| 28 | /tmp/mach_universal_binary:x86_64 0x100000f24 |
Alexey Samsonov | 14809fd | 2013-03-01 07:58:27 +0000 | [diff] [blame] | 29 | $ llvm-symbolizer < addr.txt |
| 30 | main |
| 31 | /tmp/a.cc:4 |
| 32 | |
| 33 | f(int, int) |
| 34 | /tmp/b.cc:11 |
| 35 | |
| 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 |
| 44 | |
Alexey Samsonov | 8175bc3 | 2013-06-28 08:15:40 +0000 | [diff] [blame] | 45 | _main |
| 46 | /tmp/source_i386.cc:8 |
| 47 | |
| 48 | _main |
| 49 | /tmp/source_x86_64.cc:8 |
Alexey Samsonov | 42c9ecb | 2013-12-24 19:33:22 +0000 | [diff] [blame] | 50 | $ cat addr2.txt |
| 51 | 0x4004f4 |
| 52 | 0x401000 |
| 53 | $ llvm-symbolizer -obj=a.out < addr2.txt |
| 54 | main |
| 55 | /tmp/a.cc:4 |
| 56 | |
| 57 | foo(int) |
| 58 | /tmp/a.cc:12 |
Hemant Kulkarni | a07496f | 2015-11-11 20:41:43 +0000 | [diff] [blame] | 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 |
Alexey Samsonov | 8175bc3 | 2013-06-28 08:15:40 +0000 | [diff] [blame] | 67 | |
Alexey Samsonov | 14809fd | 2013-03-01 07:58:27 +0000 | [diff] [blame] | 68 | OPTIONS |
| 69 | ------- |
| 70 | |
Dmitry Venikov | a16ce91 | 2019-01-11 11:51:52 +0000 | [diff] [blame] | 71 | .. option:: -obj, -exe, -e |
Alexey Samsonov | bf6e3f9 | 2014-05-17 00:07:48 +0000 | [diff] [blame] | 72 | |
Alexey Samsonov | 42c9ecb | 2013-12-24 19:33:22 +0000 | [diff] [blame] | 73 | Path to object file to be symbolized. |
| 74 | |
Alexey Samsonov | bf6e3f9 | 2014-05-17 00:07:48 +0000 | [diff] [blame] | 75 | .. option:: -functions=[none|short|linkage] |
Alexey Samsonov | 14809fd | 2013-03-01 07:58:27 +0000 | [diff] [blame] | 76 | |
Alexey Samsonov | bf6e3f9 | 2014-05-17 00:07:48 +0000 | [diff] [blame] | 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``. |
Alexey Samsonov | 14809fd | 2013-03-01 07:58:27 +0000 | [diff] [blame] | 80 | |
| 81 | .. option:: -use-symbol-table |
| 82 | |
| 83 | Prefer function names stored in symbol table to function names |
| 84 | in debug info sections. Defaults to true. |
| 85 | |
Dmitry Venikov | 2eebdab | 2019-01-16 07:05:58 +0000 | [diff] [blame] | 86 | .. option:: -demangle, -C |
Alexey Samsonov | 14809fd | 2013-03-01 07:58:27 +0000 | [diff] [blame] | 87 | |
| 88 | Print demangled function names. Defaults to true. |
| 89 | |
| 90 | .. option:: -inlining |
| 91 | |
| 92 | If a source code location is in an inlined function, prints all the |
| 93 | inlnied frames. Defaults to true. |
| 94 | |
Alexey Samsonov | 8175bc3 | 2013-06-28 08:15:40 +0000 | [diff] [blame] | 95 | .. option:: -default-arch |
| 96 | |
| 97 | If a binary contains object files for multiple architectures (e.g. it is a |
| 98 | Mach-O universal binary), symbolize the object file for a given architecture. |
| 99 | You can also specify architecture by writing ``binary_name:arch_name`` in the |
| 100 | input (see example above). If architecture is not specified in either way, |
| 101 | address will not be symbolized. Defaults to empty string. |
| 102 | |
Alexander Potapenko | 0fea775 | 2014-10-17 00:50:19 +0000 | [diff] [blame] | 103 | .. option:: -dsym-hint=<path/to/file.dSYM> |
| 104 | |
| 105 | (Darwin-only flag). If the debug info for a binary isn't present in the default |
| 106 | location, look for the debug info at the .dSYM path provided via the |
| 107 | ``-dsym-hint`` flag. This flag can be used multiple times. |
| 108 | |
Dmitry Venikov | 7fd3419 | 2019-01-14 10:10:51 +0000 | [diff] [blame] | 109 | .. option:: -print-address, -addresses, -a |
Hemant Kulkarni | fab9983 | 2015-11-11 22:14:58 +0000 | [diff] [blame] | 110 | |
Hemant Kulkarni | e8d28f3 | 2015-10-12 19:26:44 +0000 | [diff] [blame] | 111 | Print address before the source code location. Defaults to false. |
Alexander Potapenko | 0fea775 | 2014-10-17 00:50:19 +0000 | [diff] [blame] | 112 | |
Dmitry Venikov | 2b64d3c | 2019-01-10 15:33:35 +0000 | [diff] [blame] | 113 | .. option:: -pretty-print, -p |
Hemant Kulkarni | fab9983 | 2015-11-11 22:14:58 +0000 | [diff] [blame] | 114 | |
Hemant Kulkarni | a07496f | 2015-11-11 20:41:43 +0000 | [diff] [blame] | 115 | Print human readable output. If ``-inlining`` is specified, enclosing scope is |
| 116 | prefixed by (inlined by). Refer to listed examples. |
| 117 | |
Alexey Samsonov | 14809fd | 2013-03-01 07:58:27 +0000 | [diff] [blame] | 118 | EXIT STATUS |
| 119 | ----------- |
| 120 | |
| 121 | :program:`llvm-symbolizer` returns 0. Other exit codes imply internal program error. |