<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1991-2013 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts.  A copy of the license is included in the
section entitled "GNU Free Documentation License".
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Binary Utilities: addr2line</title>

<meta name="description" content="GNU Binary Utilities: addr2line">
<meta name="keywords" content="GNU Binary Utilities: addr2line">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Binutils-Index.html#Binutils-Index" rel="index" title="Binutils Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="nlmconv.html#nlmconv" rel="next" title="nlmconv">
<link href="c_002b_002bfilt.html#c_002b_002bfilt" rel="prev" title="c++filt">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="addr2line"></a>
<div class="header">
<p>
Next: <a href="nlmconv.html#nlmconv" accesskey="n" rel="next">nlmconv</a>, Previous: <a href="c_002b_002bfilt.html#c_002b_002bfilt" accesskey="p" rel="prev">c++filt</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Binutils-Index.html#Binutils-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="addr2line-1"></a>
<h2 class="chapter">10 addr2line</h2>

<a name="index-addr2line"></a>
<a name="index-address-to-file-name-and-line-number"></a>


<div class="smallexample">
<pre class="smallexample">addr2line [<samp>-a</samp>|<samp>--addresses</samp>]
          [<samp>-b</samp> <var>bfdname</var>|<samp>--target=</samp><var>bfdname</var>]
          [<samp>-C</samp>|<samp>--demangle</samp>[=<var>style</var>]]
          [<samp>-e</samp> <var>filename</var>|<samp>--exe=</samp><var>filename</var>]
          [<samp>-f</samp>|<samp>--functions</samp>] [<samp>-s</samp>|<samp>--basename</samp>]
          [<samp>-i</samp>|<samp>--inlines</samp>]
          [<samp>-p</samp>|<samp>--pretty-print</samp>]
          [<samp>-j</samp>|<samp>--section=</samp><var>name</var>]
          [<samp>-H</samp>|<samp>--help</samp>] [<samp>-V</samp>|<samp>--version</samp>]
          [addr addr &hellip;]
</pre></div>


<p><code>addr2line</code> translates addresses into file names and line numbers.
Given an address in an executable or an offset in a section of a relocatable
object, it uses the debugging information to figure out which file name and
line number are associated with it.
</p>
<p>The executable or relocatable object to use is specified with the <samp>-e</samp>
option.  The default is the file <samp>a.out</samp>.  The section in the relocatable
object to use is specified with the <samp>-j</samp> option.
</p>
<p><code>addr2line</code> has two modes of operation.
</p>
<p>In the first, hexadecimal addresses are specified on the command line,
and <code>addr2line</code> displays the file name and line number for each
address.
</p>
<p>In the second, <code>addr2line</code> reads hexadecimal addresses from
standard input, and prints the file name and line number for each
address on standard output.  In this mode, <code>addr2line</code> may be used
in a pipe to convert dynamically chosen addresses.
</p>
<p>The format of the output is &lsquo;<samp>FILENAME:LINENO</samp>&rsquo;.  The file name and
line number for each input address is printed on separate lines.
</p>
<p>If the <samp>-f</samp> option is used, then each &lsquo;<samp>FILENAME:LINENO</samp>&rsquo;
line is preceded by &lsquo;<samp>FUNCTIONNAME</samp>&rsquo; which is the name of the
function containing the address.
</p>
<p>If the <samp>-i</samp> option is used and the code at the given address is
present there because of inlining by the compiler then the
&lsquo;<samp>{FUNCTIONNAME} FILENAME:LINENO</samp>&rsquo; information for the inlining
function will be displayed afterwards.  This continues recursively
until there is no more inlining to report.
</p>
<p>If the <samp>-a</samp> option is used then the output is prefixed by the
input address.
</p>
<p>If the <samp>-p</samp> option is used then the output for each input
address is displayed on one, possibly quite long, line.  If
<samp>-p</samp> is not used then the output is broken up into multiple
lines, based on the paragraphs above.
</p>
<p>If the file name or function name can not be determined,
<code>addr2line</code> will print two question marks in their place.  If the
line number can not be determined, <code>addr2line</code> will print 0.
</p>


<p>The long and short forms of options, shown here as alternatives, are
equivalent.
</p>
<dl compact="compact">
<dt><code>-a</code></dt>
<dt><code>--addresses</code></dt>
<dd><p>Display the address before the function name, file and line number
information.  The address is printed with a &lsquo;<samp>0x</samp>&rsquo; prefix to easily
identify it.
</p>
</dd>
<dt><code>-b <var>bfdname</var></code></dt>
<dt><code>--target=<var>bfdname</var></code></dt>
<dd><a name="index-object-code-format-4"></a>
<p>Specify that the object-code format for the object files is
<var>bfdname</var>.
</p>
</dd>
<dt><code>-C</code></dt>
<dt><code>--demangle[=<var>style</var>]</code></dt>
<dd><a name="index-demangling-in-objdump-1"></a>
<p>Decode (<em>demangle</em>) low-level symbol names into user-level names.
Besides removing any initial underscore prepended by the system, this
makes C++ function names readable.  Different compilers have different
mangling styles. The optional demangling style argument can be used to
choose an appropriate demangling style for your compiler. See <a href="c_002b_002bfilt.html#c_002b_002bfilt">c++filt</a>,
for more information on demangling.
</p>
</dd>
<dt><code>-e <var>filename</var></code></dt>
<dt><code>--exe=<var>filename</var></code></dt>
<dd><p>Specify the name of the executable for which addresses should be
translated.  The default file is <samp>a.out</samp>.
</p>
</dd>
<dt><code>-f</code></dt>
<dt><code>--functions</code></dt>
<dd><p>Display function names as well as file and line number information.
</p>
</dd>
<dt><code>-s</code></dt>
<dt><code>--basenames</code></dt>
<dd><p>Display only the base of each file name.
</p>
</dd>
<dt><code>-i</code></dt>
<dt><code>--inlines</code></dt>
<dd><p>If the address belongs to a function that was inlined, the source
information for all enclosing scopes back to the first non-inlined
function will also be printed.  For example, if <code>main</code> inlines
<code>callee1</code> which inlines <code>callee2</code>, and address is from
<code>callee2</code>, the source information for <code>callee1</code> and <code>main</code>
will also be printed.
</p>
</dd>
<dt><code>-j</code></dt>
<dt><code>--section</code></dt>
<dd><p>Read offsets relative to the specified section instead of absolute addresses.
</p>
</dd>
<dt><code>-p</code></dt>
<dt><code>--pretty-print</code></dt>
<dd><p>Make the output more human friendly: each location are printed on one line.
If option <samp>-i</samp> is specified, lines for all enclosing scopes are
prefixed with &lsquo;<samp>(inlined by)</samp>&rsquo;.
</p></dd>
</dl>



<hr>
<div class="header">
<p>
Next: <a href="nlmconv.html#nlmconv" accesskey="n" rel="next">nlmconv</a>, Previous: <a href="c_002b_002bfilt.html#c_002b_002bfilt" accesskey="p" rel="prev">c++filt</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Binutils-Index.html#Binutils-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>
