aboutsummaryrefslogtreecommitdiff
path: root/llvm/docs/CommandGuide/llvm-addr2line.rst
blob: 999b3e0d7e6aa9d8bebef7e329a7c748a869628b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
llvm-addr2line - a drop-in replacement for addr2line
====================================================

.. program:: llvm-addr2line

SYNOPSIS
--------

:program:`llvm-addr2line` [*options*]

DESCRIPTION
-----------

:program:`llvm-addr2line` is an alias for the :manpage:`llvm-symbolizer(1)`
tool with different defaults. The goal is to make it a drop-in replacement for
GNU's :program:`addr2line`.

Here are some of those differences:

-  ``llvm-addr2line`` interprets all addresses as hexadecimal and ignores an
   optional ``0x`` prefix, whereas ``llvm-symbolizer`` attempts to determine
   the base from the literal's prefix and defaults to decimal if there is no
   prefix.

-  ``llvm-addr2line`` defaults not to print function names. Use `-f`_ to enable
   that.

-  ``llvm-addr2line`` defaults not to demangle function names. Use `-C`_ to
   switch the demangling on.

-  ``llvm-addr2line`` defaults not to print inlined frames. Use `-i`_ to show
   inlined frames for a source code location in an inlined function.

-  ``llvm-addr2line`` uses `--output-style=GNU`_ by default.

-  ``llvm-addr2line`` parses options from the environment variable
   ``LLVM_ADDR2LINE_OPTS`` instead of from ``LLVM_SYMBOLIZER_OPTS``.

- ``llvm-addr2line`` accepts an address with a '+' prefix, e.g. `+0x00777fff`.
  This is treated as a symbol name by ``llvm-symbolizer``.

SEE ALSO
--------

:manpage:`llvm-symbolizer(1)`

.. _-f: llvm-symbolizer.html#llvm-symbolizer-opt-f
.. _-C: llvm-symbolizer.html#llvm-symbolizer-opt-c
.. _-i: llvm-symbolizer.html#llvm-symbolizer-opt-i
.. _--output-style=GNU: llvm-symbolizer.html#llvm-symbolizer-opt-output-style