motify compile link error

motify compile link error
This commit is contained in:
ant 2016-09-18 09:03:25 +08:00
parent 923914edae
commit 03e74a8e50
5418 changed files with 1367914 additions and 206149 deletions

View file

@ -0,0 +1,302 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "ADDR2LINE 1"
.TH ADDR2LINE 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
addr2line \- convert addresses into file names and line numbers.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
addr2line [\fB\-a\fR|\fB\-\-addresses\fR]
[\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
[\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]]
[\fB\-e\fR \fIfilename\fR|\fB\-\-exe=\fR\fIfilename\fR]
[\fB\-f\fR|\fB\-\-functions\fR] [\fB\-s\fR|\fB\-\-basename\fR]
[\fB\-i\fR|\fB\-\-inlines\fR]
[\fB\-p\fR|\fB\-\-pretty\-print\fR]
[\fB\-j\fR|\fB\-\-section=\fR\fIname\fR]
[\fB\-H\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
[addr addr ...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBaddr2line\fR 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.
.PP
The executable or relocatable object to use is specified with the \fB\-e\fR
option. The default is the file \fIa.out\fR. The section in the relocatable
object to use is specified with the \fB\-j\fR option.
.PP
\&\fBaddr2line\fR has two modes of operation.
.PP
In the first, hexadecimal addresses are specified on the command line,
and \fBaddr2line\fR displays the file name and line number for each
address.
.PP
In the second, \fBaddr2line\fR reads hexadecimal addresses from
standard input, and prints the file name and line number for each
address on standard output. In this mode, \fBaddr2line\fR may be used
in a pipe to convert dynamically chosen addresses.
.PP
The format of the output is \fB\s-1FILENAME:LINENO\s0\fR. The file name and
line number for each input address is printed on separate lines.
.PP
If the \fB\-f\fR option is used, then each \fB\s-1FILENAME:LINENO\s0\fR
line is preceded by \fB\s-1FUNCTIONNAME\s0\fR which is the name of the
function containing the address.
.PP
If the \fB\-i\fR option is used and the code at the given address is
present there because of inlining by the compiler then the
\&\fB{\s-1FUNCTIONNAME\s0} \s-1FILENAME:LINENO\s0\fR information for the inlining
function will be displayed afterwards. This continues recursively
until there is no more inlining to report.
.PP
If the \fB\-a\fR option is used then the output is prefixed by the
input address.
.PP
If the \fB\-p\fR option is used then the output for each input
address is displayed on one, possibly quite long, line. If
\&\fB\-p\fR is not used then the output is broken up into multiple
lines, based on the paragraphs above.
.PP
If the file name or function name can not be determined,
\&\fBaddr2line\fR will print two question marks in their place. If the
line number can not be determined, \fBaddr2line\fR will print 0.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-addresses\fR" 4
.IX Item "--addresses"
.PD
Display the address before the function name, file and line number
information. The address is printed with a \fB0x\fR prefix to easily
identify it.
.IP "\fB\-b\fR \fIbfdname\fR" 4
.IX Item "-b bfdname"
.PD 0
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
.PD
Specify that the object-code format for the object files is
\&\fIbfdname\fR.
.IP "\fB\-C\fR" 4
.IX Item "-C"
.PD 0
.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
.IX Item "--demangle[=style]"
.PD
Decode (\fIdemangle\fR) 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.
.IP "\fB\-e\fR \fIfilename\fR" 4
.IX Item "-e filename"
.PD 0
.IP "\fB\-\-exe=\fR\fIfilename\fR" 4
.IX Item "--exe=filename"
.PD
Specify the name of the executable for which addresses should be
translated. The default file is \fIa.out\fR.
.IP "\fB\-f\fR" 4
.IX Item "-f"
.PD 0
.IP "\fB\-\-functions\fR" 4
.IX Item "--functions"
.PD
Display function names as well as file and line number information.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-basenames\fR" 4
.IX Item "--basenames"
.PD
Display only the base of each file name.
.IP "\fB\-i\fR" 4
.IX Item "-i"
.PD 0
.IP "\fB\-\-inlines\fR" 4
.IX Item "--inlines"
.PD
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 \f(CW\*(C`main\*(C'\fR inlines
\&\f(CW\*(C`callee1\*(C'\fR which inlines \f(CW\*(C`callee2\*(C'\fR, and address is from
\&\f(CW\*(C`callee2\*(C'\fR, the source information for \f(CW\*(C`callee1\*(C'\fR and \f(CW\*(C`main\*(C'\fR
will also be printed.
.IP "\fB\-j\fR" 4
.IX Item "-j"
.PD 0
.IP "\fB\-\-section\fR" 4
.IX Item "--section"
.PD
Read offsets relative to the specified section instead of absolute addresses.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-pretty\-print\fR" 4
.IX Item "--pretty-print"
.PD
Make the output more human friendly: each location are printed on one line.
If option \fB\-i\fR is specified, lines for all enclosing scopes are
prefixed with \fB(inlined by)\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,452 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "AR 1"
.TH AR 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
ar \- create, modify, and extract from archives
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
ar [\fB\-\-plugin\fR \fIname\fR] [\fB\-X32_64\fR] [\fB\-\fR]\fIp\fR[\fImod\fR [\fIrelpos\fR] [\fIcount\fR]] [\fB\-\-target\fR \fIbfdname\fR] \fIarchive\fR [\fImember\fR...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The \s-1GNU\s0 \fBar\fR program creates, modifies, and extracts from
archives. An \fIarchive\fR is a single file holding a collection of
other files in a structure that makes it possible to retrieve
the original individual files (called \fImembers\fR of the archive).
.PP
The original files' contents, mode (permissions), timestamp, owner, and
group are preserved in the archive, and can be restored on
extraction.
.PP
\&\s-1GNU\s0 \fBar\fR can maintain archives whose members have names of any
length; however, depending on how \fBar\fR is configured on your
system, a limit on member-name length may be imposed for compatibility
with archive formats maintained with other tools. If it exists, the
limit is often 15 characters (typical of formats related to a.out) or 16
characters (typical of formats related to coff).
.PP
\&\fBar\fR is considered a binary utility because archives of this sort
are most often used as \fIlibraries\fR holding commonly needed
subroutines.
.PP
\&\fBar\fR creates an index to the symbols defined in relocatable
object modules in the archive when you specify the modifier \fBs\fR.
Once created, this index is updated in the archive whenever \fBar\fR
makes a change to its contents (save for the \fBq\fR update operation).
An archive with such an index speeds up linking to the library, and
allows routines in the library to call each other without regard to
their placement in the archive.
.PP
You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index
table. If an archive lacks the table, another form of \fBar\fR called
\&\fBranlib\fR can be used to add just the table.
.PP
\&\s-1GNU\s0 \fBar\fR can optionally create a \fIthin\fR archive,
which contains a symbol index and references to the original copies
of the member files of the archives. Such an archive is useful
for building libraries for use within a local build, where the
relocatable objects are expected to remain available, and copying the
contents of each object would only waste time and space. Thin archives
are also \fIflattened\fR, so that adding one or more archives to a
thin archive will add the elements of the nested archive individually.
The paths to the elements of the archive are stored relative to the
archive itself.
.PP
\&\s-1GNU\s0 \fBar\fR is designed to be compatible with two different
facilities. You can control its activity using command-line options,
like the different varieties of \fBar\fR on Unix systems; or, if you
specify the single command-line option \fB\-M\fR, you can control it
with a script supplied via standard input, like the \s-1MRI\s0 \*(L"librarian\*(R"
program.
.SH "OPTIONS"
.IX Header "OPTIONS"
\&\s-1GNU\s0 \fBar\fR allows you to mix the operation code \fIp\fR and modifier
flags \fImod\fR in any order, within the first command-line argument.
.PP
If you wish, you may begin the first command-line argument with a
dash.
.PP
The \fIp\fR keyletter specifies what operation to execute; it may be
any of the following, but you must specify only one of them:
.IP "\fBd\fR" 4
.IX Item "d"
\&\fIDelete\fR modules from the archive. Specify the names of modules to
be deleted as \fImember\fR...; the archive is untouched if you
specify no files to delete.
.Sp
If you specify the \fBv\fR modifier, \fBar\fR lists each module
as it is deleted.
.IP "\fBm\fR" 4
.IX Item "m"
Use this operation to \fImove\fR members in an archive.
.Sp
The ordering of members in an archive can make a difference in how
programs are linked using the library, if a symbol is defined in more
than one member.
.Sp
If no modifiers are used with \f(CW\*(C`m\*(C'\fR, any members you name in the
\&\fImember\fR arguments are moved to the \fIend\fR of the archive;
you can use the \fBa\fR, \fBb\fR, or \fBi\fR modifiers to move them to a
specified place instead.
.IP "\fBp\fR" 4
.IX Item "p"
\&\fIPrint\fR the specified members of the archive, to the standard
output file. If the \fBv\fR modifier is specified, show the member
name before copying its contents to standard output.
.Sp
If you specify no \fImember\fR arguments, all the files in the archive are
printed.
.IP "\fBq\fR" 4
.IX Item "q"
\&\fIQuick append\fR; Historically, add the files \fImember\fR... to the end of
\&\fIarchive\fR, without checking for replacement.
.Sp
The modifiers \fBa\fR, \fBb\fR, and \fBi\fR do \fInot\fR affect this
operation; new members are always placed at the end of the archive.
.Sp
The modifier \fBv\fR makes \fBar\fR list each file as it is appended.
.Sp
Since the point of this operation is speed, the archive's symbol table
index is not updated, even if it already existed; you can use \fBar s\fR or
\&\fBranlib\fR explicitly to update the symbol table index.
.Sp
However, too many different systems assume quick append rebuilds the
index, so \s-1GNU\s0 \fBar\fR implements \fBq\fR as a synonym for \fBr\fR.
.IP "\fBr\fR" 4
.IX Item "r"
Insert the files \fImember\fR... into \fIarchive\fR (with
\&\fIreplacement\fR). This operation differs from \fBq\fR in that any
previously existing members are deleted if their names match those being
added.
.Sp
If one of the files named in \fImember\fR... does not exist, \fBar\fR
displays an error message, and leaves undisturbed any existing members
of the archive matching that name.
.Sp
By default, new members are added at the end of the file; but you may
use one of the modifiers \fBa\fR, \fBb\fR, or \fBi\fR to request
placement relative to some existing member.
.Sp
The modifier \fBv\fR used with this operation elicits a line of
output for each file inserted, along with one of the letters \fBa\fR or
\&\fBr\fR to indicate whether the file was appended (no old member
deleted) or replaced.
.IP "\fBs\fR" 4
.IX Item "s"
Add an index to the archive, or update it if it already exists. Note
this command is an exception to the rule that there can only be one
command letter, as it is possible to use it as either a command or a
modifier. In either case it does the same thing.
.IP "\fBt\fR" 4
.IX Item "t"
Display a \fItable\fR listing the contents of \fIarchive\fR, or those
of the files listed in \fImember\fR... that are present in the
archive. Normally only the member name is shown; if you also want to
see the modes (permissions), timestamp, owner, group, and size, you can
request that by also specifying the \fBv\fR modifier.
.Sp
If you do not specify a \fImember\fR, all files in the archive
are listed.
.Sp
If there is more than one file with the same name (say, \fBfie\fR) in
an archive (say \fBb.a\fR), \fBar t b.a fie\fR lists only the
first instance; to see them all, you must ask for a complete
listing\-\-\-in our example, \fBar t b.a\fR.
.IP "\fBx\fR" 4
.IX Item "x"
\&\fIExtract\fR members (named \fImember\fR) from the archive. You can
use the \fBv\fR modifier with this operation, to request that
\&\fBar\fR list each name as it extracts it.
.Sp
If you do not specify a \fImember\fR, all files in the archive
are extracted.
.Sp
Files cannot be extracted from a thin archive.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Displays the list of command line options supported by \fBar\fR
and then exits.
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
Displays the version information of \fBar\fR and then exits.
.PP
A number of modifiers (\fImod\fR) may immediately follow the \fIp\fR
keyletter, to specify variations on an operation's behavior:
.IP "\fBa\fR" 4
.IX Item "a"
Add new files \fIafter\fR an existing member of the
archive. If you use the modifier \fBa\fR, the name of an existing archive
member must be present as the \fIrelpos\fR argument, before the
\&\fIarchive\fR specification.
.IP "\fBb\fR" 4
.IX Item "b"
Add new files \fIbefore\fR an existing member of the
archive. If you use the modifier \fBb\fR, the name of an existing archive
member must be present as the \fIrelpos\fR argument, before the
\&\fIarchive\fR specification. (same as \fBi\fR).
.IP "\fBc\fR" 4
.IX Item "c"
\&\fICreate\fR the archive. The specified \fIarchive\fR is always
created if it did not exist, when you request an update. But a warning is
issued unless you specify in advance that you expect to create it, by
using this modifier.
.IP "\fBD\fR" 4
.IX Item "D"
Operate in \fIdeterministic\fR mode. When adding files and the archive
index use zero for UIDs, GIDs, timestamps, and use consistent file modes
for all files. When this option is used, if \fBar\fR is used with
identical options and identical input files, multiple runs will create
identical output files regardless of the input files' owners, groups,
file modes, or modification times.
.Sp
If \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by default.
It can be disabled with the \fBU\fR modifier, below.
.IP "\fBf\fR" 4
.IX Item "f"
Truncate names in the archive. \s-1GNU\s0 \fBar\fR will normally permit file
names of any length. This will cause it to create archives which are
not compatible with the native \fBar\fR program on some systems. If
this is a concern, the \fBf\fR modifier may be used to truncate file
names when putting them in the archive.
.IP "\fBi\fR" 4
.IX Item "i"
Insert new files \fIbefore\fR an existing member of the
archive. If you use the modifier \fBi\fR, the name of an existing archive
member must be present as the \fIrelpos\fR argument, before the
\&\fIarchive\fR specification. (same as \fBb\fR).
.IP "\fBl\fR" 4
.IX Item "l"
This modifier is accepted but not used.
.IP "\fBN\fR" 4
.IX Item "N"
Uses the \fIcount\fR parameter. This is used if there are multiple
entries in the archive with the same name. Extract or delete instance
\&\fIcount\fR of the given name from the archive.
.IP "\fBo\fR" 4
.IX Item "o"
Preserve the \fIoriginal\fR dates of members when extracting them. If
you do not specify this modifier, files extracted from the archive
are stamped with the time of extraction.
.IP "\fBP\fR" 4
.IX Item "P"
Use the full path name when matching names in the archive. \s-1GNU\s0
\&\fBar\fR can not create an archive with a full path name (such archives
are not \s-1POSIX\s0 complaint), but other archive creators can. This option
will cause \s-1GNU\s0 \fBar\fR to match file names using a complete path
name, which can be convenient when extracting a single file from an
archive created by another tool.
.IP "\fBs\fR" 4
.IX Item "s"
Write an object-file index into the archive, or update an existing one,
even if no other change is made to the archive. You may use this modifier
flag either with any operation, or alone. Running \fBar s\fR on an
archive is equivalent to running \fBranlib\fR on it.
.IP "\fBS\fR" 4
.IX Item "S"
Do not generate an archive symbol table. This can speed up building a
large library in several steps. The resulting archive can not be used
with the linker. In order to build a symbol table, you must omit the
\&\fBS\fR modifier on the last execution of \fBar\fR, or you must run
\&\fBranlib\fR on the archive.
.IP "\fBT\fR" 4
.IX Item "T"
Make the specified \fIarchive\fR a \fIthin\fR archive. If it already
exists and is a regular archive, the existing members must be present
in the same directory as \fIarchive\fR.
.IP "\fBu\fR" 4
.IX Item "u"
Normally, \fBar r\fR... inserts all files
listed into the archive. If you would like to insert \fIonly\fR those
of the files you list that are newer than existing members of the same
names, use this modifier. The \fBu\fR modifier is allowed only for the
operation \fBr\fR (replace). In particular, the combination \fBqu\fR is
not allowed, since checking the timestamps would lose any speed
advantage from the operation \fBq\fR.
.IP "\fBU\fR" 4
.IX Item "U"
Do \fInot\fR operate in \fIdeterministic\fR mode. This is the inverse
of the \fBD\fR modifier, above: added files and the archive index will
get their actual \s-1UID\s0, \s-1GID\s0, timestamp, and file mode values.
.Sp
This is the default unless \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR.
.IP "\fBv\fR" 4
.IX Item "v"
This modifier requests the \fIverbose\fR version of an operation. Many
operations display additional information, such as filenames processed,
when the modifier \fBv\fR is appended.
.IP "\fBV\fR" 4
.IX Item "V"
This modifier shows the version number of \fBar\fR.
.PP
\&\fBar\fR ignores an initial option spelt \fB\-X32_64\fR, for
compatibility with \s-1AIX\s0. The behaviour produced by this option is the
default for \s-1GNU\s0 \fBar\fR. \fBar\fR does not support any of the other
\&\fB\-X\fR options; in particular, it does not support \fB\-X32\fR
which is the default for \s-1AIX\s0 \fBar\fR.
.PP
The optional command line switch \fB\-\-plugin\fR \fIname\fR causes
\&\fBar\fR to load the plugin called \fIname\fR which adds support
for more file formats. This option is only available if the toolchain
has been built with plugin support enabled.
.PP
The optional command line switch \fB\-\-target\fR \fIbfdname\fR
specifies that the archive members are in an object code format
different from your system's default format. See
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fInm\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,339 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "C++FILT 1"
.TH C++FILT 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
c++filt \- Demangle C++ and Java symbols.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
c++filt [\fB\-_\fR|\fB\-\-strip\-underscore\fR]
[\fB\-n\fR|\fB\-\-no\-strip\-underscore\fR]
[\fB\-p\fR|\fB\-\-no\-params\fR]
[\fB\-t\fR|\fB\-\-types\fR]
[\fB\-i\fR|\fB\-\-no\-verbose\fR]
[\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
[\fB\-\-help\fR] [\fB\-\-version\fR] [\fIsymbol\fR...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The \*(C+ and Java languages provide function overloading, which means
that you can write many functions with the same name, providing that
each function takes parameters of different types. In order to be
able to distinguish these similarly named functions \*(C+ and Java
encode them into a low-level assembler name which uniquely identifies
each different version. This process is known as \fImangling\fR. The
\&\fBc++filt\fR
[1]
program does the inverse mapping: it decodes (\fIdemangles\fR) low-level
names into user-level names so that they can be read.
.PP
Every alphanumeric word (consisting of letters, digits, underscores,
dollars, or periods) seen in the input is a potential mangled name.
If the name decodes into a \*(C+ name, the \*(C+ name replaces the
low-level name in the output, otherwise the original word is output.
In this way you can pass an entire assembler source file, containing
mangled names, through \fBc++filt\fR and see the same source file
containing demangled names.
.PP
You can also use \fBc++filt\fR to decipher individual symbols by
passing them on the command line:
.PP
.Vb 1
\& c++filt <symbol>
.Ve
.PP
If no \fIsymbol\fR arguments are given, \fBc++filt\fR reads symbol
names from the standard input instead. All the results are printed on
the standard output. The difference between reading names from the
command line versus reading names from the standard input is that
command line arguments are expected to be just mangled names and no
checking is performed to separate them from surrounding text. Thus
for example:
.PP
.Vb 1
\& c++filt \-n _Z1fv
.Ve
.PP
will work and demangle the name to \*(L"f()\*(R" whereas:
.PP
.Vb 1
\& c++filt \-n _Z1fv,
.Ve
.PP
will not work. (Note the extra comma at the end of the mangled
name which makes it invalid). This command however will work:
.PP
.Vb 1
\& echo _Z1fv, | c++filt \-n
.Ve
.PP
and will display \*(L"f(),\*(R", i.e., the demangled name followed by a
trailing comma. This behaviour is because when the names are read
from the standard input it is expected that they might be part of an
assembler source file where there might be extra, extraneous
characters trailing after a mangled name. For example:
.PP
.Vb 1
\& .type _Z1fv, @function
.Ve
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-_\fR" 4
.IX Item "-_"
.PD 0
.IP "\fB\-\-strip\-underscore\fR" 4
.IX Item "--strip-underscore"
.PD
On some systems, both the C and \*(C+ compilers put an underscore in front
of every name. For example, the C name \f(CW\*(C`foo\*(C'\fR gets the low-level
name \f(CW\*(C`_foo\*(C'\fR. This option removes the initial underscore. Whether
\&\fBc++filt\fR removes the underscore by default is target dependent.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-no\-strip\-underscore\fR" 4
.IX Item "--no-strip-underscore"
.PD
Do not remove the initial underscore.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-no\-params\fR" 4
.IX Item "--no-params"
.PD
When demangling the name of a function, do not display the types of
the function's parameters.
.IP "\fB\-t\fR" 4
.IX Item "-t"
.PD 0
.IP "\fB\-\-types\fR" 4
.IX Item "--types"
.PD
Attempt to demangle types as well as function names. This is disabled
by default since mangled types are normally only used internally in
the compiler, and they can be confused with non-mangled names. For example,
a function called \*(L"a\*(R" treated as a mangled type name would be
demangled to \*(L"signed char\*(R".
.IP "\fB\-i\fR" 4
.IX Item "-i"
.PD 0
.IP "\fB\-\-no\-verbose\fR" 4
.IX Item "--no-verbose"
.PD
Do not include implementation details (if any) in the demangled
output.
.IP "\fB\-s\fR \fIformat\fR" 4
.IX Item "-s format"
.PD 0
.IP "\fB\-\-format=\fR\fIformat\fR" 4
.IX Item "--format=format"
.PD
\&\fBc++filt\fR can decode various methods of mangling, used by
different compilers. The argument to this option selects which
method it uses:
.RS 4
.ie n .IP """auto""" 4
.el .IP "\f(CWauto\fR" 4
.IX Item "auto"
Automatic selection based on executable (the default method)
.ie n .IP """gnu""" 4
.el .IP "\f(CWgnu\fR" 4
.IX Item "gnu"
the one used by the \s-1GNU\s0 \*(C+ compiler (g++)
.ie n .IP """lucid""" 4
.el .IP "\f(CWlucid\fR" 4
.IX Item "lucid"
the one used by the Lucid compiler (lcc)
.ie n .IP """arm""" 4
.el .IP "\f(CWarm\fR" 4
.IX Item "arm"
the one specified by the \*(C+ Annotated Reference Manual
.ie n .IP """hp""" 4
.el .IP "\f(CWhp\fR" 4
.IX Item "hp"
the one used by the \s-1HP\s0 compiler (aCC)
.ie n .IP """edg""" 4
.el .IP "\f(CWedg\fR" 4
.IX Item "edg"
the one used by the \s-1EDG\s0 compiler
.ie n .IP """gnu\-v3""" 4
.el .IP "\f(CWgnu\-v3\fR" 4
.IX Item "gnu-v3"
the one used by the \s-1GNU\s0 \*(C+ compiler (g++) with the V3 \s-1ABI\s0.
.ie n .IP """java""" 4
.el .IP "\f(CWjava\fR" 4
.IX Item "java"
the one used by the \s-1GNU\s0 Java compiler (gcj)
.ie n .IP """gnat""" 4
.el .IP "\f(CWgnat\fR" 4
.IX Item "gnat"
the one used by the \s-1GNU\s0 Ada compiler (\s-1GNAT\s0).
.RE
.RS 4
.RE
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Print a summary of the options to \fBc++filt\fR and exit.
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
Print the version number of \fBc++filt\fR and exit.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "FOOTNOTES"
.IX Header "FOOTNOTES"
.IP "1." 4
MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on
MS-DOS this program is named \fB\s-1CXXFILT\s0\fR.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,532 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "DLLTOOL 1"
.TH DLLTOOL 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
dlltool \- Create files needed to build and use DLLs.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
dlltool [\fB\-d\fR|\fB\-\-input\-def\fR \fIdef-file-name\fR]
[\fB\-b\fR|\fB\-\-base\-file\fR \fIbase-file-name\fR]
[\fB\-e\fR|\fB\-\-output\-exp\fR \fIexports-file-name\fR]
[\fB\-z\fR|\fB\-\-output\-def\fR \fIdef-file-name\fR]
[\fB\-l\fR|\fB\-\-output\-lib\fR \fIlibrary-file-name\fR]
[\fB\-y\fR|\fB\-\-output\-delaylib\fR \fIlibrary-file-name\fR]
[\fB\-\-export\-all\-symbols\fR] [\fB\-\-no\-export\-all\-symbols\fR]
[\fB\-\-exclude\-symbols\fR \fIlist\fR]
[\fB\-\-no\-default\-excludes\fR]
[\fB\-S\fR|\fB\-\-as\fR \fIpath-to-assembler\fR] [\fB\-f\fR|\fB\-\-as\-flags\fR \fIoptions\fR]
[\fB\-D\fR|\fB\-\-dllname\fR \fIname\fR] [\fB\-m\fR|\fB\-\-machine\fR \fImachine\fR]
[\fB\-a\fR|\fB\-\-add\-indirect\fR]
[\fB\-U\fR|\fB\-\-add\-underscore\fR] [\fB\-\-add\-stdcall\-underscore\fR]
[\fB\-k\fR|\fB\-\-kill\-at\fR] [\fB\-A\fR|\fB\-\-add\-stdcall\-alias\fR]
[\fB\-p\fR|\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR]
[\fB\-x\fR|\fB\-\-no\-idata4\fR] [\fB\-c\fR|\fB\-\-no\-idata5\fR]
[\fB\-\-use\-nul\-prefixed\-import\-tables\fR]
[\fB\-I\fR|\fB\-\-identify\fR \fIlibrary-file-name\fR] [\fB\-\-identify\-strict\fR]
[\fB\-i\fR|\fB\-\-interwork\fR]
[\fB\-n\fR|\fB\-\-nodelete\fR] [\fB\-t\fR|\fB\-\-temp\-prefix\fR \fIprefix\fR]
[\fB\-v\fR|\fB\-\-verbose\fR]
[\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
[\fB\-\-no\-leading\-underscore\fR] [\fB\-\-leading\-underscore\fR]
[object\-file ...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBdlltool\fR reads its inputs, which can come from the \fB\-d\fR and
\&\fB\-b\fR options as well as object files specified on the command
line. It then processes these inputs and if the \fB\-e\fR option has
been specified it creates a exports file. If the \fB\-l\fR option
has been specified it creates a library file and if the \fB\-z\fR option
has been specified it creates a def file. Any or all of the \fB\-e\fR,
\&\fB\-l\fR and \fB\-z\fR options can be present in one invocation of
dlltool.
.PP
When creating a \s-1DLL\s0, along with the source for the \s-1DLL\s0, it is necessary
to have three other files. \fBdlltool\fR can help with the creation of
these files.
.PP
The first file is a \fI.def\fR file which specifies which functions are
exported from the \s-1DLL\s0, which functions the \s-1DLL\s0 imports, and so on. This
is a text file and can be created by hand, or \fBdlltool\fR can be used
to create it using the \fB\-z\fR option. In this case \fBdlltool\fR
will scan the object files specified on its command line looking for
those functions which have been specially marked as being exported and
put entries for them in the \fI.def\fR file it creates.
.PP
In order to mark a function as being exported from a \s-1DLL\s0, it needs to
have an \fB\-export:<name_of_function>\fR entry in the \fB.drectve\fR
section of the object file. This can be done in C by using the
\&\fIasm()\fR operator:
.PP
.Vb 2
\& asm (".section .drectve");
\& asm (".ascii \e"\-export:my_func\e"");
\&
\& int my_func (void) { ... }
.Ve
.PP
The second file needed for \s-1DLL\s0 creation is an exports file. This file
is linked with the object files that make up the body of the \s-1DLL\s0 and it
handles the interface between the \s-1DLL\s0 and the outside world. This is a
binary file and it can be created by giving the \fB\-e\fR option to
\&\fBdlltool\fR when it is creating or reading in a \fI.def\fR file.
.PP
The third file needed for \s-1DLL\s0 creation is the library file that programs
will link with in order to access the functions in the \s-1DLL\s0 (an `import
library'). This file can be created by giving the \fB\-l\fR option to
dlltool when it is creating or reading in a \fI.def\fR file.
.PP
If the \fB\-y\fR option is specified, dlltool generates a delay-import
library that can be used instead of the normal import library to allow
a program to link to the dll only as soon as an imported function is
called for the first time. The resulting executable will need to be
linked to the static delayimp library containing _\|\fI_delayLoadHelper2()\fR,
which in turn will import LoadLibraryA and GetProcAddress from kernel32.
.PP
\&\fBdlltool\fR builds the library file by hand, but it builds the
exports file by creating temporary files containing assembler statements
and then assembling these. The \fB\-S\fR command line option can be
used to specify the path to the assembler that dlltool will use,
and the \fB\-f\fR option can be used to pass specific flags to that
assembler. The \fB\-n\fR can be used to prevent dlltool from deleting
these temporary assembler files when it is done, and if \fB\-n\fR is
specified twice then this will prevent dlltool from deleting the
temporary object files it used to build the library.
.PP
Here is an example of creating a \s-1DLL\s0 from a source file \fBdll.c\fR and
also creating a program (from an object file called \fBprogram.o\fR)
that uses that \s-1DLL:\s0
.PP
.Vb 4
\& gcc \-c dll.c
\& dlltool \-e exports.o \-l dll.lib dll.o
\& gcc dll.o exports.o \-o dll.dll
\& gcc program.o dll.lib \-o program
.Ve
.PP
\&\fBdlltool\fR may also be used to query an existing import library
to determine the name of the \s-1DLL\s0 to which it is associated. See the
description of the \fB\-I\fR or \fB\-\-identify\fR option.
.SH "OPTIONS"
.IX Header "OPTIONS"
The command line options have the following meanings:
.IP "\fB\-d\fR \fIfilename\fR" 4
.IX Item "-d filename"
.PD 0
.IP "\fB\-\-input\-def\fR \fIfilename\fR" 4
.IX Item "--input-def filename"
.PD
Specifies the name of a \fI.def\fR file to be read in and processed.
.IP "\fB\-b\fR \fIfilename\fR" 4
.IX Item "-b filename"
.PD 0
.IP "\fB\-\-base\-file\fR \fIfilename\fR" 4
.IX Item "--base-file filename"
.PD
Specifies the name of a base file to be read in and processed. The
contents of this file will be added to the relocation section in the
exports file generated by dlltool.
.IP "\fB\-e\fR \fIfilename\fR" 4
.IX Item "-e filename"
.PD 0
.IP "\fB\-\-output\-exp\fR \fIfilename\fR" 4
.IX Item "--output-exp filename"
.PD
Specifies the name of the export file to be created by dlltool.
.IP "\fB\-z\fR \fIfilename\fR" 4
.IX Item "-z filename"
.PD 0
.IP "\fB\-\-output\-def\fR \fIfilename\fR" 4
.IX Item "--output-def filename"
.PD
Specifies the name of the \fI.def\fR file to be created by dlltool.
.IP "\fB\-l\fR \fIfilename\fR" 4
.IX Item "-l filename"
.PD 0
.IP "\fB\-\-output\-lib\fR \fIfilename\fR" 4
.IX Item "--output-lib filename"
.PD
Specifies the name of the library file to be created by dlltool.
.IP "\fB\-y\fR \fIfilename\fR" 4
.IX Item "-y filename"
.PD 0
.IP "\fB\-\-output\-delaylib\fR \fIfilename\fR" 4
.IX Item "--output-delaylib filename"
.PD
Specifies the name of the delay-import library file to be created by dlltool.
.IP "\fB\-\-export\-all\-symbols\fR" 4
.IX Item "--export-all-symbols"
Treat all global and weak defined symbols found in the input object
files as symbols to be exported. There is a small list of symbols which
are not exported by default; see the \fB\-\-no\-default\-excludes\fR
option. You may add to the list of symbols to not export by using the
\&\fB\-\-exclude\-symbols\fR option.
.IP "\fB\-\-no\-export\-all\-symbols\fR" 4
.IX Item "--no-export-all-symbols"
Only export symbols explicitly listed in an input \fI.def\fR file or in
\&\fB.drectve\fR sections in the input object files. This is the default
behaviour. The \fB.drectve\fR sections are created by \fBdllexport\fR
attributes in the source code.
.IP "\fB\-\-exclude\-symbols\fR \fIlist\fR" 4
.IX Item "--exclude-symbols list"
Do not export the symbols in \fIlist\fR. This is a list of symbol names
separated by comma or colon characters. The symbol names should not
contain a leading underscore. This is only meaningful when
\&\fB\-\-export\-all\-symbols\fR is used.
.IP "\fB\-\-no\-default\-excludes\fR" 4
.IX Item "--no-default-excludes"
When \fB\-\-export\-all\-symbols\fR is used, it will by default avoid
exporting certain special symbols. The current list of symbols to avoid
exporting is \fBDllMain@12\fR, \fBDllEntryPoint@0\fR,
\&\fBimpure_ptr\fR. You may use the \fB\-\-no\-default\-excludes\fR option
to go ahead and export these special symbols. This is only meaningful
when \fB\-\-export\-all\-symbols\fR is used.
.IP "\fB\-S\fR \fIpath\fR" 4
.IX Item "-S path"
.PD 0
.IP "\fB\-\-as\fR \fIpath\fR" 4
.IX Item "--as path"
.PD
Specifies the path, including the filename, of the assembler to be used
to create the exports file.
.IP "\fB\-f\fR \fIoptions\fR" 4
.IX Item "-f options"
.PD 0
.IP "\fB\-\-as\-flags\fR \fIoptions\fR" 4
.IX Item "--as-flags options"
.PD
Specifies any specific command line options to be passed to the
assembler when building the exports file. This option will work even if
the \fB\-S\fR option is not used. This option only takes one argument,
and if it occurs more than once on the command line, then later
occurrences will override earlier occurrences. So if it is necessary to
pass multiple options to the assembler they should be enclosed in
double quotes.
.IP "\fB\-D\fR \fIname\fR" 4
.IX Item "-D name"
.PD 0
.IP "\fB\-\-dll\-name\fR \fIname\fR" 4
.IX Item "--dll-name name"
.PD
Specifies the name to be stored in the \fI.def\fR file as the name of
the \s-1DLL\s0 when the \fB\-e\fR option is used. If this option is not
present, then the filename given to the \fB\-e\fR option will be
used as the name of the \s-1DLL\s0.
.IP "\fB\-m\fR \fImachine\fR" 4
.IX Item "-m machine"
.PD 0
.IP "\fB\-machine\fR \fImachine\fR" 4
.IX Item "-machine machine"
.PD
Specifies the type of machine for which the library file should be
built. \fBdlltool\fR has a built in default type, depending upon how
it was created, but this option can be used to override that. This is
normally only useful when creating DLLs for an \s-1ARM\s0 processor, when the
contents of the \s-1DLL\s0 are actually encode using Thumb instructions.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-add\-indirect\fR" 4
.IX Item "--add-indirect"
.PD
Specifies that when \fBdlltool\fR is creating the exports file it
should add a section which allows the exported functions to be
referenced without using the import library. Whatever the hell that
means!
.IP "\fB\-U\fR" 4
.IX Item "-U"
.PD 0
.IP "\fB\-\-add\-underscore\fR" 4
.IX Item "--add-underscore"
.PD
Specifies that when \fBdlltool\fR is creating the exports file it
should prepend an underscore to the names of \fIall\fR exported symbols.
.IP "\fB\-\-no\-leading\-underscore\fR" 4
.IX Item "--no-leading-underscore"
.PD 0
.IP "\fB\-\-leading\-underscore\fR" 4
.IX Item "--leading-underscore"
.PD
Specifies whether standard symbol should be forced to be prefixed, or
not.
.IP "\fB\-\-add\-stdcall\-underscore\fR" 4
.IX Item "--add-stdcall-underscore"
Specifies that when \fBdlltool\fR is creating the exports file it
should prepend an underscore to the names of exported \fIstdcall\fR
functions. Variable names and non-stdcall function names are not modified.
This option is useful when creating GNU-compatible import libs for third
party DLLs that were built with MS-Windows tools.
.IP "\fB\-k\fR" 4
.IX Item "-k"
.PD 0
.IP "\fB\-\-kill\-at\fR" 4
.IX Item "--kill-at"
.PD
Specifies that when \fBdlltool\fR is creating the exports file it
should not append the string \fB@ <number>\fR. These numbers are
called ordinal numbers and they represent another way of accessing the
function in a \s-1DLL\s0, other than by name.
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-\-add\-stdcall\-alias\fR" 4
.IX Item "--add-stdcall-alias"
.PD
Specifies that when \fBdlltool\fR is creating the exports file it
should add aliases for stdcall symbols without \fB@ <number>\fR
in addition to the symbols with \fB@ <number>\fR.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR" 4
.IX Item "--ext-prefix-alias prefix"
.PD
Causes \fBdlltool\fR to create external aliases for all \s-1DLL\s0
imports with the specified prefix. The aliases are created for both
external and import symbols with no leading underscore.
.IP "\fB\-x\fR" 4
.IX Item "-x"
.PD 0
.IP "\fB\-\-no\-idata4\fR" 4
.IX Item "--no-idata4"
.PD
Specifies that when \fBdlltool\fR is creating the exports and library
files it should omit the \f(CW\*(C`.idata4\*(C'\fR section. This is for compatibility
with certain operating systems.
.IP "\fB\-\-use\-nul\-prefixed\-import\-tables\fR" 4
.IX Item "--use-nul-prefixed-import-tables"
Specifies that when \fBdlltool\fR is creating the exports and library
files it should prefix the \f(CW\*(C`.idata4\*(C'\fR and \f(CW\*(C`.idata5\*(C'\fR by zero an
element. This emulates old gnu import library generation of
\&\f(CW\*(C`dlltool\*(C'\fR. By default this option is turned off.
.IP "\fB\-c\fR" 4
.IX Item "-c"
.PD 0
.IP "\fB\-\-no\-idata5\fR" 4
.IX Item "--no-idata5"
.PD
Specifies that when \fBdlltool\fR is creating the exports and library
files it should omit the \f(CW\*(C`.idata5\*(C'\fR section. This is for compatibility
with certain operating systems.
.IP "\fB\-I\fR \fIfilename\fR" 4
.IX Item "-I filename"
.PD 0
.IP "\fB\-\-identify\fR \fIfilename\fR" 4
.IX Item "--identify filename"
.PD
Specifies that \fBdlltool\fR should inspect the import library
indicated by \fIfilename\fR and report, on \f(CW\*(C`stdout\*(C'\fR, the name(s)
of the associated \s-1DLL\s0(s). This can be performed in addition to any
other operations indicated by the other options and arguments.
\&\fBdlltool\fR fails if the import library does not exist or is not
actually an import library. See also \fB\-\-identify\-strict\fR.
.IP "\fB\-\-identify\-strict\fR" 4
.IX Item "--identify-strict"
Modifies the behavior of the \fB\-\-identify\fR option, such
that an error is reported if \fIfilename\fR is associated with
more than one \s-1DLL\s0.
.IP "\fB\-i\fR" 4
.IX Item "-i"
.PD 0
.IP "\fB\-\-interwork\fR" 4
.IX Item "--interwork"
.PD
Specifies that \fBdlltool\fR should mark the objects in the library
file and exports file that it produces as supporting interworking
between \s-1ARM\s0 and Thumb code.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-nodelete\fR" 4
.IX Item "--nodelete"
.PD
Makes \fBdlltool\fR preserve the temporary assembler files it used to
create the exports file. If this option is repeated then dlltool will
also preserve the temporary object files it uses to create the library
file.
.IP "\fB\-t\fR \fIprefix\fR" 4
.IX Item "-t prefix"
.PD 0
.IP "\fB\-\-temp\-prefix\fR \fIprefix\fR" 4
.IX Item "--temp-prefix prefix"
.PD
Makes \fBdlltool\fR use \fIprefix\fR when constructing the names of
temporary assembler and object files. By default, the temp file prefix
is generated from the pid.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-verbose\fR" 4
.IX Item "--verbose"
.PD
Make dlltool describe what it is doing.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Displays a list of command line options and then exits.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Displays dlltool's version number and then exits.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
The Info pages for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,236 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "ELFEDIT 1"
.TH ELFEDIT 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
elfedit \- Update the ELF header of ELF files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
elfedit [\fB\-\-input\-mach=\fR\fImachine\fR]
[\fB\-\-input\-type=\fR\fItype\fR]
[\fB\-\-input\-osabi=\fR\fIosabi\fR]
\fB\-\-output\-mach=\fR\fImachine\fR
\fB\-\-output\-type=\fR\fItype\fR
\fB\-\-output\-osabi=\fR\fIosabi\fR
[\fB\-v\fR|\fB\-\-version\fR]
[\fB\-h\fR|\fB\-\-help\fR]
\fIelffile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBelfedit\fR updates the \s-1ELF\s0 header of \s-1ELF\s0 files which have
the matching \s-1ELF\s0 machine and file types. The options control how and
which fields in the \s-1ELF\s0 header should be updated.
.PP
\&\fIelffile\fR... are the \s-1ELF\s0 files to be updated. 32\-bit and
64\-bit \s-1ELF\s0 files are supported, as are archives containing \s-1ELF\s0 files.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent. At least one of the \fB\-\-output\-mach\fR,
\&\fB\-\-output\-type\fR and \fB\-\-output\-osabi\fR options must be given.
.IP "\fB\-\-input\-mach=\fR\fImachine\fR" 4
.IX Item "--input-mach=machine"
Set the matching input \s-1ELF\s0 machine type to \fImachine\fR. If
\&\fB\-\-input\-mach\fR isn't specified, it will match any \s-1ELF\s0
machine types.
.Sp
The supported \s-1ELF\s0 machine types are, \fIL1OM\fR, \fIK1OM\fR and
\&\fIx86\-64\fR.
.IP "\fB\-\-output\-mach=\fR\fImachine\fR" 4
.IX Item "--output-mach=machine"
Change the \s-1ELF\s0 machine type in the \s-1ELF\s0 header to \fImachine\fR. The
supported \s-1ELF\s0 machine types are the same as \fB\-\-input\-mach\fR.
.IP "\fB\-\-input\-type=\fR\fItype\fR" 4
.IX Item "--input-type=type"
Set the matching input \s-1ELF\s0 file type to \fItype\fR. If
\&\fB\-\-input\-type\fR isn't specified, it will match any \s-1ELF\s0 file types.
.Sp
The supported \s-1ELF\s0 file types are, \fIrel\fR, \fIexec\fR and \fIdyn\fR.
.IP "\fB\-\-output\-type=\fR\fItype\fR" 4
.IX Item "--output-type=type"
Change the \s-1ELF\s0 file type in the \s-1ELF\s0 header to \fItype\fR. The
supported \s-1ELF\s0 types are the same as \fB\-\-input\-type\fR.
.IP "\fB\-\-input\-osabi=\fR\fIosabi\fR" 4
.IX Item "--input-osabi=osabi"
Set the matching input \s-1ELF\s0 file \s-1OSABI\s0 to \fIosabi\fR. If
\&\fB\-\-input\-osabi\fR isn't specified, it will match any \s-1ELF\s0 OSABIs.
.Sp
The supported \s-1ELF\s0 OSABIs are, \fInone\fR, \fI\s-1HPUX\s0\fR, \fINetBSD\fR,
\&\fI\s-1GNU\s0\fR, \fILinux\fR (alias for \fI\s-1GNU\s0\fR),
\&\fISolaris\fR, \fI\s-1AIX\s0\fR, \fIIrix\fR,
\&\fIFreeBSD\fR, \fI\s-1TRU64\s0\fR, \fIModesto\fR, \fIOpenBSD\fR, \fIOpenVMS\fR,
\&\fI\s-1NSK\s0\fR, \fI\s-1AROS\s0\fR and \fIFenixOS\fR.
.IP "\fB\-\-output\-osabi=\fR\fIosabi\fR" 4
.IX Item "--output-osabi=osabi"
Change the \s-1ELF\s0 \s-1OSABI\s0 in the \s-1ELF\s0 header to \fIosabi\fR. The
supported \s-1ELF\s0 \s-1OSABI\s0 are the same as \fB\-\-input\-osabi\fR.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Display the version number of \fBelfedit\fR.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Display the command line options understood by \fBelfedit\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,680 @@
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "GCOV 1"
.TH GCOV 1 "2014-02-28" "gcc-4.8.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
gcov \- coverage testing tool
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
gcov [\fB\-v\fR|\fB\-\-version\fR] [\fB\-h\fR|\fB\-\-help\fR]
[\fB\-a\fR|\fB\-\-all\-blocks\fR]
[\fB\-b\fR|\fB\-\-branch\-probabilities\fR]
[\fB\-c\fR|\fB\-\-branch\-counts\fR]
[\fB\-u\fR|\fB\-\-unconditional\-branches\fR]
[\fB\-n\fR|\fB\-\-no\-output\fR]
[\fB\-l\fR|\fB\-\-long\-file\-names\fR]
[\fB\-p\fR|\fB\-\-preserve\-paths\fR]
[\fB\-r\fR|\fB\-\-relative\-only\fR]
[\fB\-f\fR|\fB\-\-function\-summaries\fR]
[\fB\-o\fR|\fB\-\-object\-directory\fR \fIdirectory|file\fR]
[\fB\-s\fR|\fB\-\-source\-prefix\fR \fIdirectory\fR]
[\fB\-d\fR|\fB\-\-display\-progress\fR]
\fIfiles\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBgcov\fR is a test coverage program. Use it in concert with \s-1GCC\s0
to analyze your programs to help create more efficient, faster running
code and to discover untested parts of your program. You can use
\&\fBgcov\fR as a profiling tool to help discover where your
optimization efforts will best affect your code. You can also use
\&\fBgcov\fR along with the other profiling tool, \fBgprof\fR, to
assess which parts of your code use the greatest amount of computing
time.
.PP
Profiling tools help you analyze your code's performance. Using a
profiler such as \fBgcov\fR or \fBgprof\fR, you can find out some
basic performance statistics, such as:
.IP "\(bu" 4
how often each line of code executes
.IP "\(bu" 4
what lines of code are actually executed
.IP "\(bu" 4
how much computing time each section of code uses
.PP
Once you know these things about how your code works when compiled, you
can look at each module to see which modules should be optimized.
\&\fBgcov\fR helps you determine where to work on optimization.
.PP
Software developers also use coverage testing in concert with
testsuites, to make sure software is actually good enough for a release.
Testsuites can verify that a program works as expected; a coverage
program tests to see how much of the program is exercised by the
testsuite. Developers can then determine what kinds of test cases need
to be added to the testsuites to create both better testing and a better
final product.
.PP
You should compile your code without optimization if you plan to use
\&\fBgcov\fR because the optimization, by combining some lines of code
into one function, may not give you as much information as you need to
look for `hot spots' where the code is using a great deal of computer
time. Likewise, because \fBgcov\fR accumulates statistics by line (at
the lowest resolution), it works best with a programming style that
places only one statement on each line. If you use complicated macros
that expand to loops or to other control structures, the statistics are
less helpful\-\-\-they only report on the line where the macro call
appears. If your complex macros behave like functions, you can replace
them with inline functions to solve this problem.
.PP
\&\fBgcov\fR creates a logfile called \fI\fIsourcefile\fI.gcov\fR which
indicates how many times each line of a source file \fI\fIsourcefile\fI.c\fR
has executed. You can use these logfiles along with \fBgprof\fR to aid
in fine-tuning the performance of your programs. \fBgprof\fR gives
timing information you can use along with the information you get from
\&\fBgcov\fR.
.PP
\&\fBgcov\fR works only on code compiled with \s-1GCC\s0. It is not
compatible with any other profiling or test coverage mechanism.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Display help about using \fBgcov\fR (on the standard output), and
exit without doing any further processing.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Display the \fBgcov\fR version number (on the standard output),
and exit without doing any further processing.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-all\-blocks\fR" 4
.IX Item "--all-blocks"
.PD
Write individual execution counts for every basic block. Normally gcov
outputs execution counts only for the main blocks of a line. With this
option you can determine if blocks within a single line are not being
executed.
.IP "\fB\-b\fR" 4
.IX Item "-b"
.PD 0
.IP "\fB\-\-branch\-probabilities\fR" 4
.IX Item "--branch-probabilities"
.PD
Write branch frequencies to the output file, and write branch summary
info to the standard output. This option allows you to see how often
each branch in your program was taken. Unconditional branches will not
be shown, unless the \fB\-u\fR option is given.
.IP "\fB\-c\fR" 4
.IX Item "-c"
.PD 0
.IP "\fB\-\-branch\-counts\fR" 4
.IX Item "--branch-counts"
.PD
Write branch frequencies as the number of branches taken, rather than
the percentage of branches taken.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-no\-output\fR" 4
.IX Item "--no-output"
.PD
Do not create the \fBgcov\fR output file.
.IP "\fB\-l\fR" 4
.IX Item "-l"
.PD 0
.IP "\fB\-\-long\-file\-names\fR" 4
.IX Item "--long-file-names"
.PD
Create long file names for included source files. For example, if the
header file \fIx.h\fR contains code, and was included in the file
\&\fIa.c\fR, then running \fBgcov\fR on the file \fIa.c\fR will
produce an output file called \fIa.c##x.h.gcov\fR instead of
\&\fIx.h.gcov\fR. This can be useful if \fIx.h\fR is included in
multiple source files and you want to see the individual
contributions. If you use the \fB\-p\fR option, both the including
and included file names will be complete path names.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-preserve\-paths\fR" 4
.IX Item "--preserve-paths"
.PD
Preserve complete path information in the names of generated
\&\fI.gcov\fR files. Without this option, just the filename component is
used. With this option, all directories are used, with \fB/\fR characters
translated to \fB#\fR characters, \fI.\fR directory components
removed and unremoveable \fI..\fR
components renamed to \fB^\fR. This is useful if sourcefiles are in several
different directories.
.IP "\fB\-r\fR" 4
.IX Item "-r"
.PD 0
.IP "\fB\-\-relative\-only\fR" 4
.IX Item "--relative-only"
.PD
Only output information about source files with a relative pathname
(after source prefix elision). Absolute paths are usually system
header files and coverage of any inline functions therein is normally
uninteresting.
.IP "\fB\-f\fR" 4
.IX Item "-f"
.PD 0
.IP "\fB\-\-function\-summaries\fR" 4
.IX Item "--function-summaries"
.PD
Output summaries for each function in addition to the file level summary.
.IP "\fB\-o\fR \fIdirectory|file\fR" 4
.IX Item "-o directory|file"
.PD 0
.IP "\fB\-\-object\-directory\fR \fIdirectory\fR" 4
.IX Item "--object-directory directory"
.IP "\fB\-\-object\-file\fR \fIfile\fR" 4
.IX Item "--object-file file"
.PD
Specify either the directory containing the gcov data files, or the
object path name. The \fI.gcno\fR, and
\&\fI.gcda\fR data files are searched for using this option. If a directory
is specified, the data files are in that directory and named after the
input file name, without its extension. If a file is specified here,
the data files are named after that file, without its extension.
.IP "\fB\-s\fR \fIdirectory\fR" 4
.IX Item "-s directory"
.PD 0
.IP "\fB\-\-source\-prefix\fR \fIdirectory\fR" 4
.IX Item "--source-prefix directory"
.PD
A prefix for source file names to remove when generating the output
coverage files. This option is useful when building in a separate
directory, and the pathname to the source directory is not wanted when
determining the output file names. Note that this prefix detection is
applied before determining whether the source file is absolute.
.IP "\fB\-u\fR" 4
.IX Item "-u"
.PD 0
.IP "\fB\-\-unconditional\-branches\fR" 4
.IX Item "--unconditional-branches"
.PD
When branch probabilities are given, include those of unconditional branches.
Unconditional branches are normally not interesting.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-display\-progress\fR" 4
.IX Item "--display-progress"
.PD
Display the progress on the standard output.
.PP
\&\fBgcov\fR should be run with the current directory the same as that
when you invoked the compiler. Otherwise it will not be able to locate
the source files. \fBgcov\fR produces files called
\&\fI\fImangledname\fI.gcov\fR in the current directory. These contain
the coverage information of the source file they correspond to.
One \fI.gcov\fR file is produced for each source (or header) file
containing code,
which was compiled to produce the data files. The \fImangledname\fR part
of the output file name is usually simply the source file name, but can
be something more complicated if the \fB\-l\fR or \fB\-p\fR options are
given. Refer to those options for details.
.PP
If you invoke \fBgcov\fR with multiple input files, the
contributions from each input file are summed. Typically you would
invoke it with the same list of files as the final link of your executable.
.PP
The \fI.gcov\fR files contain the \fB:\fR separated fields along with
program source code. The format is
.PP
.Vb 1
\& <execution_count>:<line_number>:<source line text>
.Ve
.PP
Additional block information may succeed each line, when requested by
command line option. The \fIexecution_count\fR is \fB\-\fR for lines
containing no code. Unexecuted lines are marked \fB#####\fR or
\&\fB====\fR, depending on whether they are reachable by
non-exceptional paths or only exceptional paths such as \*(C+ exception
handlers, respectively.
.PP
Some lines of information at the start have \fIline_number\fR of zero.
These preamble lines are of the form
.PP
.Vb 1
\& \-:0:<tag>:<value>
.Ve
.PP
The ordering and number of these preamble lines will be augmented as
\&\fBgcov\fR development progresses \-\-\- do not rely on them remaining
unchanged. Use \fItag\fR to locate a particular preamble line.
.PP
The additional block information is of the form
.PP
.Vb 1
\& <tag> <information>
.Ve
.PP
The \fIinformation\fR is human readable, but designed to be simple
enough for machine parsing too.
.PP
When printing percentages, 0% and 100% are only printed when the values
are \fIexactly\fR 0% and 100% respectively. Other values which would
conventionally be rounded to 0% or 100% are instead printed as the
nearest non-boundary value.
.PP
When using \fBgcov\fR, you must first compile your program with two
special \s-1GCC\s0 options: \fB\-fprofile\-arcs \-ftest\-coverage\fR.
This tells the compiler to generate additional information needed by
gcov (basically a flow graph of the program) and also includes
additional code in the object files for generating the extra profiling
information needed by gcov. These additional files are placed in the
directory where the object file is located.
.PP
Running the program will cause profile output to be generated. For each
source file compiled with \fB\-fprofile\-arcs\fR, an accompanying
\&\fI.gcda\fR file will be placed in the object file directory.
.PP
Running \fBgcov\fR with your program's source file names as arguments
will now produce a listing of the code along with frequency of execution
for each line. For example, if your program is called \fItmp.c\fR, this
is what you see when you use the basic \fBgcov\fR facility:
.PP
.Vb 5
\& $ gcc \-fprofile\-arcs \-ftest\-coverage tmp.c
\& $ a.out
\& $ gcov tmp.c
\& 90.00% of 10 source lines executed in file tmp.c
\& Creating tmp.c.gcov.
.Ve
.PP
The file \fItmp.c.gcov\fR contains output from \fBgcov\fR.
Here is a sample:
.PP
.Vb 10
\& \-: 0:Source:tmp.c
\& \-: 0:Graph:tmp.gcno
\& \-: 0:Data:tmp.gcda
\& \-: 0:Runs:1
\& \-: 0:Programs:1
\& \-: 1:#include <stdio.h>
\& \-: 2:
\& \-: 3:int main (void)
\& 1: 4:{
\& 1: 5: int i, total;
\& \-: 6:
\& 1: 7: total = 0;
\& \-: 8:
\& 11: 9: for (i = 0; i < 10; i++)
\& 10: 10: total += i;
\& \-: 11:
\& 1: 12: if (total != 45)
\& #####: 13: printf ("Failure\en");
\& \-: 14: else
\& 1: 15: printf ("Success\en");
\& 1: 16: return 0;
\& \-: 17:}
.Ve
.PP
When you use the \fB\-a\fR option, you will get individual block
counts, and the output looks like this:
.PP
.Vb 10
\& \-: 0:Source:tmp.c
\& \-: 0:Graph:tmp.gcno
\& \-: 0:Data:tmp.gcda
\& \-: 0:Runs:1
\& \-: 0:Programs:1
\& \-: 1:#include <stdio.h>
\& \-: 2:
\& \-: 3:int main (void)
\& 1: 4:{
\& 1: 4\-block 0
\& 1: 5: int i, total;
\& \-: 6:
\& 1: 7: total = 0;
\& \-: 8:
\& 11: 9: for (i = 0; i < 10; i++)
\& 11: 9\-block 0
\& 10: 10: total += i;
\& 10: 10\-block 0
\& \-: 11:
\& 1: 12: if (total != 45)
\& 1: 12\-block 0
\& #####: 13: printf ("Failure\en");
\& $$$$$: 13\-block 0
\& \-: 14: else
\& 1: 15: printf ("Success\en");
\& 1: 15\-block 0
\& 1: 16: return 0;
\& 1: 16\-block 0
\& \-: 17:}
.Ve
.PP
In this mode, each basic block is only shown on one line \*(-- the last
line of the block. A multi-line block will only contribute to the
execution count of that last line, and other lines will not be shown
to contain code, unless previous blocks end on those lines.
The total execution count of a line is shown and subsequent lines show
the execution counts for individual blocks that end on that line. After each
block, the branch and call counts of the block will be shown, if the
\&\fB\-b\fR option is given.
.PP
Because of the way \s-1GCC\s0 instruments calls, a call count can be shown
after a line with no individual blocks.
As you can see, line 13 contains a basic block that was not executed.
.PP
When you use the \fB\-b\fR option, your output looks like this:
.PP
.Vb 6
\& $ gcov \-b tmp.c
\& 90.00% of 10 source lines executed in file tmp.c
\& 80.00% of 5 branches executed in file tmp.c
\& 80.00% of 5 branches taken at least once in file tmp.c
\& 50.00% of 2 calls executed in file tmp.c
\& Creating tmp.c.gcov.
.Ve
.PP
Here is a sample of a resulting \fItmp.c.gcov\fR file:
.PP
.Vb 10
\& \-: 0:Source:tmp.c
\& \-: 0:Graph:tmp.gcno
\& \-: 0:Data:tmp.gcda
\& \-: 0:Runs:1
\& \-: 0:Programs:1
\& \-: 1:#include <stdio.h>
\& \-: 2:
\& \-: 3:int main (void)
\& function main called 1 returned 1 blocks executed 75%
\& 1: 4:{
\& 1: 5: int i, total;
\& \-: 6:
\& 1: 7: total = 0;
\& \-: 8:
\& 11: 9: for (i = 0; i < 10; i++)
\& branch 0 taken 91% (fallthrough)
\& branch 1 taken 9%
\& 10: 10: total += i;
\& \-: 11:
\& 1: 12: if (total != 45)
\& branch 0 taken 0% (fallthrough)
\& branch 1 taken 100%
\& #####: 13: printf ("Failure\en");
\& call 0 never executed
\& \-: 14: else
\& 1: 15: printf ("Success\en");
\& call 0 called 1 returned 100%
\& 1: 16: return 0;
\& \-: 17:}
.Ve
.PP
For each function, a line is printed showing how many times the function
is called, how many times it returns and what percentage of the
function's blocks were executed.
.PP
For each basic block, a line is printed after the last line of the basic
block describing the branch or call that ends the basic block. There can
be multiple branches and calls listed for a single source line if there
are multiple basic blocks that end on that line. In this case, the
branches and calls are each given a number. There is no simple way to map
these branches and calls back to source constructs. In general, though,
the lowest numbered branch or call will correspond to the leftmost construct
on the source line.
.PP
For a branch, if it was executed at least once, then a percentage
indicating the number of times the branch was taken divided by the
number of times the branch was executed will be printed. Otherwise, the
message \*(L"never executed\*(R" is printed.
.PP
For a call, if it was executed at least once, then a percentage
indicating the number of times the call returned divided by the number
of times the call was executed will be printed. This will usually be
100%, but may be less for functions that call \f(CW\*(C`exit\*(C'\fR or \f(CW\*(C`longjmp\*(C'\fR,
and thus may not return every time they are called.
.PP
The execution counts are cumulative. If the example program were
executed again without removing the \fI.gcda\fR file, the count for the
number of times each line in the source was executed would be added to
the results of the previous run(s). This is potentially useful in
several ways. For example, it could be used to accumulate data over a
number of program runs as part of a test verification suite, or to
provide more accurate long-term information over a large number of
program runs.
.PP
The data in the \fI.gcda\fR files is saved immediately before the program
exits. For each source file compiled with \fB\-fprofile\-arcs\fR, the
profiling code first attempts to read in an existing \fI.gcda\fR file; if
the file doesn't match the executable (differing number of basic block
counts) it will ignore the contents of the file. It then adds in the
new execution counts and finally writes the data to the file.
.Sh "Using \fBgcov\fP with \s-1GCC\s0 Optimization"
.IX Subsection "Using gcov with GCC Optimization"
If you plan to use \fBgcov\fR to help optimize your code, you must
first compile your program with two special \s-1GCC\s0 options:
\&\fB\-fprofile\-arcs \-ftest\-coverage\fR. Aside from that, you can use any
other \s-1GCC\s0 options; but if you want to prove that every single line
in your program was executed, you should not compile with optimization
at the same time. On some machines the optimizer can eliminate some
simple code lines by combining them with other lines. For example, code
like this:
.PP
.Vb 4
\& if (a != b)
\& c = 1;
\& else
\& c = 0;
.Ve
.PP
can be compiled into one instruction on some machines. In this case,
there is no way for \fBgcov\fR to calculate separate execution counts
for each line because there isn't separate code for each line. Hence
the \fBgcov\fR output looks like this if you compiled the program with
optimization:
.PP
.Vb 4
\& 100: 12:if (a != b)
\& 100: 13: c = 1;
\& 100: 14:else
\& 100: 15: c = 0;
.Ve
.PP
The output shows that this block of code, combined by optimization,
executed 100 times. In one sense this result is correct, because there
was only one instruction representing all four of these lines. However,
the output does not indicate how many times the result was 0 and how
many times the result was 1.
.PP
Inlineable functions can create unexpected line counts. Line counts are
shown for the source code of the inlineable function, but what is shown
depends on where the function is inlined, or if it is not inlined at all.
.PP
If the function is not inlined, the compiler must emit an out of line
copy of the function, in any object file that needs it. If
\&\fIfileA.o\fR and \fIfileB.o\fR both contain out of line bodies of a
particular inlineable function, they will also both contain coverage
counts for that function. When \fIfileA.o\fR and \fIfileB.o\fR are
linked together, the linker will, on many systems, select one of those
out of line bodies for all calls to that function, and remove or ignore
the other. Unfortunately, it will not remove the coverage counters for
the unused function body. Hence when instrumented, all but one use of
that function will show zero counts.
.PP
If the function is inlined in several places, the block structure in
each location might not be the same. For instance, a condition might
now be calculable at compile time in some instances. Because the
coverage of all the uses of the inline function will be shown for the
same source lines, the line counts themselves might seem inconsistent.
.PP
Long-running applications can use the \f(CW\*(C`_gcov_reset\*(C'\fR and \f(CW\*(C`_gcov_dump\*(C'\fR
facilities to restrict profile collection to the program region of
interest. Calling \f(CW\*(C`_gcov_reset(void)\*(C'\fR will clear all profile counters
to zero, and calling \f(CW\*(C`_gcov_dump(void)\*(C'\fR will cause the profile information
collected at that point to be dumped to \fI.gcda\fR output files.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), \fIgcc\fR\|(1) and the Info entry for \fIgcc\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1996\-2013 Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
Free Software\*(R", the Front-Cover texts being (a) (see below), and with
the Back-Cover Texts being (b) (see below). A copy of the license is
included in the \fIgfdl\fR\|(7) man page.
.PP
(a) The \s-1FSF\s0's Front-Cover Text is:
.PP
.Vb 1
\& A GNU Manual
.Ve
.PP
(b) The \s-1FSF\s0's Back-Cover Text is:
.PP
.Vb 3
\& You have freedom to copy and modify this GNU Manual, like GNU
\& software. Copies published by the Free Software Foundation raise
\& funds for GNU development.
.Ve

View file

@ -0,0 +1,403 @@
.\" Copyright (C) 1991-2013 Free Software Foundation, Inc.
.\" See section COPYING for conditions for redistribution
.\" $Id$
.TH gdb 1 "22may2002" "GNU Tools" "GNU Tools"
.SH NAME
gdb \- The GNU Debugger
.SH SYNOPSIS
.na
.TP
.B gdb
.RB "[\|" \-help "\|]"
.RB "[\|" \-nh "\|]"
.RB "[\|" \-nx "\|]"
.RB "[\|" \-q "\|]"
.RB "[\|" \-batch "\|]"
.RB "[\|" \-cd=\c
.I dir\c
\|]
.RB "[\|" \-f "\|]"
.RB "[\|" "\-b\ "\c
.IR bps "\|]"
.RB "[\|" "\-tty="\c
.IR dev "\|]"
.RB "[\|" "\-s "\c
.I symfile\c
\&\|]
.RB "[\|" "\-e "\c
.I prog\c
\&\|]
.RB "[\|" "\-se "\c
.I prog\c
\&\|]
.RB "[\|" "\-c "\c
.I core\c
\&\|]
.RB "[\|" "\-x "\c
.I file\c
\&\|]
.RB "[\|" "\-ex "\c
.I cmd\c
\&\|]
.RB "[\|" "\-d "\c
.I dir\c
\&\|]
.RB "[\|" \c
.I prog\c
.RB "[\|" \c
.IR core \||\| procID\c
\&\|]\&\|]
.ad b
.SH DESCRIPTION
The purpose of a debugger such as GDB is to allow you to see what is
going on ``inside'' another program while it executes\(em\&or what another
program was doing at the moment it crashed.
GDB can do four main kinds of things (plus other things in support of
these) to help you catch bugs in the act:
.TP
\ \ \ \(bu
Start your program, specifying anything that might affect its behavior.
.TP
\ \ \ \(bu
Make your program stop on specified conditions.
.TP
\ \ \ \(bu
Examine what has happened, when your program has stopped.
.TP
\ \ \ \(bu
Change things in your program, so you can experiment with correcting the
effects of one bug and go on to learn about another.
.PP
You can use GDB to debug programs written in C, C++, and Modula-2.
Fortran support will be added when a GNU Fortran compiler is ready.
GDB is invoked with the shell command \c
.B gdb\c
\&. Once started, it reads
commands from the terminal until you tell it to exit with the GDB
command \c
.B quit\c
\&. You can get online help from \c
.B gdb\c
\& itself
by using the command \c
.B help\c
\&.
You can run \c
.B gdb\c
\& with no arguments or options; but the most
usual way to start GDB is with one argument or two, specifying an
executable program as the argument:
.sp
.br
gdb\ program
.br
.sp
You can also start with both an executable program and a core file specified:
.sp
.br
gdb\ program\ core
.br
.sp
You can, instead, specify a process ID as a second argument, if you want
to debug a running process:
.sp
.br
gdb\ program\ 1234
.br
.sp
would attach GDB to process \c
.B 1234\c
\& (unless you also have a file
named `\|\c
.B 1234\c
\&\|'; GDB does check for a core file first).
Here are some of the most frequently needed GDB commands:
.TP
.B break \fR[\|\fIfile\fB:\fR\|]\fIfunction
\&
Set a breakpoint at \c
.I function\c
\& (in \c
.I file\c
\&).
.TP
.B run \fR[\|\fIarglist\fR\|]
Start your program (with \c
.I arglist\c
\&, if specified).
.TP
.B bt
Backtrace: display the program stack.
.TP
.BI print " expr"\c
\&
Display the value of an expression.
.TP
.B c
Continue running your program (after stopping, e.g. at a breakpoint).
.TP
.B next
Execute next program line (after stopping); step \c
.I over\c
\& any
function calls in the line.
.TP
.B edit \fR[\|\fIfile\fB:\fR\|]\fIfunction
look at the program line where it is presently stopped.
.TP
.B list \fR[\|\fIfile\fB:\fR\|]\fIfunction
type the text of the program in the vicinity of where it is presently stopped.
.TP
.B step
Execute next program line (after stopping); step \c
.I into\c
\& any
function calls in the line.
.TP
.B help \fR[\|\fIname\fR\|]
Show information about GDB command \c
.I name\c
\&, or general information
about using GDB.
.TP
.B quit
Exit from GDB.
.PP
For full details on GDB, see \c
.I
Using GDB: A Guide to the GNU Source-Level Debugger\c
\&, by Richard M. Stallman and Roland H. Pesch. The same text is available online
as the \c
.B gdb\c
\& entry in the \c
.B info\c
\& program.
.SH OPTIONS
Any arguments other than options specify an executable
file and core file (or process ID); that is, the first argument
encountered with no
associated option flag is equivalent to a `\|\c
.B \-se\c
\&\|' option, and the
second, if any, is equivalent to a `\|\c
.B \-c\c
\&\|' option if it's the name of a file. Many options have
both long and short forms; both are shown here. The long forms are also
recognized if you truncate them, so long as enough of the option is
present to be unambiguous. (If you prefer, you can flag option
arguments with `\|\c
.B +\c
\&\|' rather than `\|\c
.B \-\c
\&\|', though we illustrate the
more usual convention.)
All the options and command line arguments you give are processed
in sequential order. The order makes a difference when the
`\|\c
.B \-x\c
\&\|' option is used.
.TP
.B \-help
.TP
.B \-h
List all options, with brief explanations.
.TP
.BI "\-symbols=" "file"\c
.TP
.BI "\-s " "file"\c
\&
Read symbol table from file \c
.I file\c
\&.
.TP
.B \-write
Enable writing into executable and core files.
.TP
.BI "\-exec=" "file"\c
.TP
.BI "\-e " "file"\c
\&
Use file \c
.I file\c
\& as the executable file to execute when
appropriate, and for examining pure data in conjunction with a core
dump.
.TP
.BI "\-se=" "file"\c
\&
Read symbol table from file \c
.I file\c
\& and use it as the executable
file.
.TP
.BI "\-core=" "file"\c
.TP
.BI "\-c " "file"\c
\&
Use file \c
.I file\c
\& as a core dump to examine.
.TP
.BI "\-command=" "file"\c
.TP
.BI "\-x " "file"\c
\&
Execute GDB commands from file \c
.I file\c
\&.
.TP
.BI "\-ex " "command"\c
\&
Execute given GDB \c
.I command\c
\&.
.TP
.BI "\-directory=" "directory"\c
.TP
.BI "\-d " "directory"\c
\&
Add \c
.I directory\c
\& to the path to search for source files.
.PP
.TP
.B \-nh
Do not execute commands from ~/.gdbinit.
.TP
.B \-nx
.TP
.B \-n
Do not execute commands from any `\|\c
.B .gdbinit\c
\&\|' initialization files.
.TP
.B \-quiet
.TP
.B \-q
``Quiet''. Do not print the introductory and copyright messages. These
messages are also suppressed in batch mode.
.TP
.B \-batch
Run in batch mode. Exit with status \c
.B 0\c
\& after processing all the command
files specified with `\|\c
.B \-x\c
\&\|' (and `\|\c
.B .gdbinit\c
\&\|', if not inhibited).
Exit with nonzero status if an error occurs in executing the GDB
commands in the command files.
Batch mode may be useful for running GDB as a filter, for example to
download and run a program on another computer; in order to make this
more useful, the message
.sp
.br
Program\ exited\ normally.
.br
.sp
(which is ordinarily issued whenever a program running under GDB control
terminates) is not issued when running in batch mode.
.TP
.BI "\-cd=" "directory"\c
\&
Run GDB using \c
.I directory\c
\& as its working directory,
instead of the current directory.
.TP
.B \-fullname
.TP
.B \-f
Emacs sets this option when it runs GDB as a subprocess. It tells GDB
to output the full file name and line number in a standard,
recognizable fashion each time a stack frame is displayed (which
includes each time the program stops). This recognizable format looks
like two `\|\c
.B \032\c
\&\|' characters, followed by the file name, line number
and character position separated by colons, and a newline. The
Emacs-to-GDB interface program uses the two `\|\c
.B \032\c
\&\|' characters as
a signal to display the source code for the frame.
.TP
.BI "\-b " "bps"\c
\&
Set the line speed (baud rate or bits per second) of any serial
interface used by GDB for remote debugging.
.TP
.BI "\-tty=" "device"\c
\&
Run using \c
.I device\c
\& for your program's standard input and output.
.PP
.SH "SEE ALSO"
The full documentation for
.B gdb
is maintained as a Texinfo manual. If the
.B info
and
.B gdb
programs and GDB's Texinfo documentation are properly installed at
your site, the command
.IP
.B info gdb
.PP
should give you access to the complete manual.
.I
Using GDB: A Guide to the GNU Source-Level Debugger\c
, Richard M. Stallman and Roland H. Pesch, July 1991.
.SH COPYING
Copyright (c) 1991, 2010 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View file

@ -0,0 +1,757 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "GPROF 1"
.TH GPROF 1 "2012-11-13" "binutils-2.23.1" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
gprof \- display call graph profile data
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
gprof [ \-[abcDhilLrsTvwxyz] ] [ \-[ACeEfFJnNOpPqQZ][\fIname\fR] ]
[ \-I \fIdirs\fR ] [ \-d[\fInum\fR] ] [ \-k \fIfrom/to\fR ]
[ \-m \fImin-count\fR ] [ \-R \fImap_file\fR ] [ \-t \fItable-length\fR ]
[ \-\-[no\-]annotated\-source[=\fIname\fR] ]
[ \-\-[no\-]exec\-counts[=\fIname\fR] ]
[ \-\-[no\-]flat\-profile[=\fIname\fR] ] [ \-\-[no\-]graph[=\fIname\fR] ]
[ \-\-[no\-]time=\fIname\fR] [ \-\-all\-lines ] [ \-\-brief ]
[ \-\-debug[=\fIlevel\fR] ] [ \-\-function\-ordering ]
[ \-\-file\-ordering \fImap_file\fR ] [ \-\-directory\-path=\fIdirs\fR ]
[ \-\-display\-unused\-functions ] [ \-\-file\-format=\fIname\fR ]
[ \-\-file\-info ] [ \-\-help ] [ \-\-line ] [ \-\-min\-count=\fIn\fR ]
[ \-\-no\-static ] [ \-\-print\-path ] [ \-\-separate\-files ]
[ \-\-static\-call\-graph ] [ \-\-sum ] [ \-\-table\-length=\fIlen\fR ]
[ \-\-traditional ] [ \-\-version ] [ \-\-width=\fIn\fR ]
[ \-\-ignore\-non\-functions ] [ \-\-demangle[=\fI\s-1STYLE\s0\fR] ]
[ \-\-no\-demangle ] [\-\-external\-symbol\-table=name]
[ \fIimage-file\fR ] [ \fIprofile-file\fR ... ]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\f(CW\*(C`gprof\*(C'\fR produces an execution profile of C, Pascal, or Fortran77
programs. The effect of called routines is incorporated in the profile
of each caller. The profile data is taken from the call graph profile file
(\fIgmon.out\fR default) which is created by programs
that are compiled with the \fB\-pg\fR option of
\&\f(CW\*(C`cc\*(C'\fR, \f(CW\*(C`pc\*(C'\fR, and \f(CW\*(C`f77\*(C'\fR.
The \fB\-pg\fR option also links in versions of the library routines
that are compiled for profiling. \f(CW\*(C`Gprof\*(C'\fR reads the given object
file (the default is \f(CW\*(C`a.out\*(C'\fR) and establishes the relation between
its symbol table and the call graph profile from \fIgmon.out\fR.
If more than one profile file is specified, the \f(CW\*(C`gprof\*(C'\fR
output shows the sum of the profile information in the given profile files.
.PP
\&\f(CW\*(C`Gprof\*(C'\fR calculates the amount of time spent in each routine.
Next, these times are propagated along the edges of the call graph.
Cycles are discovered, and calls into a cycle are made to share the time
of the cycle.
.PP
Several forms of output are available from the analysis.
.PP
The \fIflat profile\fR shows how much time your program spent in each function,
and how many times that function was called. If you simply want to know
which functions burn most of the cycles, it is stated concisely here.
.PP
The \fIcall graph\fR shows, for each function, which functions called it, which
other functions it called, and how many times. There is also an estimate
of how much time was spent in the subroutines of each function. This can
suggest places where you might try to eliminate function calls that use a
lot of time.
.PP
The \fIannotated source\fR listing is a copy of the program's
source code, labeled with the number of times each line of the
program was executed.
.SH "OPTIONS"
.IX Header "OPTIONS"
These options specify which of several output formats
\&\f(CW\*(C`gprof\*(C'\fR should produce.
.PP
Many of these options take an optional \fIsymspec\fR to specify
functions to be included or excluded. These options can be
specified multiple times, with different symspecs, to include
or exclude sets of symbols.
.PP
Specifying any of these options overrides the default (\fB\-p \-q\fR),
which prints a flat profile and call graph analysis
for all functions.
.ie n .IP """\-A[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-A[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-A[symspec]"
.PD 0
.ie n .IP """\-\-annotated\-source[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-annotated\-source[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--annotated-source[=symspec]"
.PD
The \fB\-A\fR option causes \f(CW\*(C`gprof\*(C'\fR to print annotated source code.
If \fIsymspec\fR is specified, print output only for matching symbols.
.ie n .IP """\-b""" 4
.el .IP "\f(CW\-b\fR" 4
.IX Item "-b"
.PD 0
.ie n .IP """\-\-brief""" 4
.el .IP "\f(CW\-\-brief\fR" 4
.IX Item "--brief"
.PD
If the \fB\-b\fR option is given, \f(CW\*(C`gprof\*(C'\fR doesn't print the
verbose blurbs that try to explain the meaning of all of the fields in
the tables. This is useful if you intend to print out the output, or
are tired of seeing the blurbs.
.ie n .IP """\-C[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-C[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-C[symspec]"
.PD 0
.ie n .IP """\-\-exec\-counts[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-exec\-counts[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--exec-counts[=symspec]"
.PD
The \fB\-C\fR option causes \f(CW\*(C`gprof\*(C'\fR to
print a tally of functions and the number of times each was called.
If \fIsymspec\fR is specified, print tally only for matching symbols.
.Sp
If the profile data file contains basic-block count records, specifying
the \fB\-l\fR option, along with \fB\-C\fR, will cause basic-block
execution counts to be tallied and displayed.
.ie n .IP """\-i""" 4
.el .IP "\f(CW\-i\fR" 4
.IX Item "-i"
.PD 0
.ie n .IP """\-\-file\-info""" 4
.el .IP "\f(CW\-\-file\-info\fR" 4
.IX Item "--file-info"
.PD
The \fB\-i\fR option causes \f(CW\*(C`gprof\*(C'\fR to display summary information
about the profile data file(s) and then exit. The number of histogram,
call graph, and basic-block count records is displayed.
.ie n .IP """\-I \f(CIdirs\f(CW""" 4
.el .IP "\f(CW\-I \f(CIdirs\f(CW\fR" 4
.IX Item "-I dirs"
.PD 0
.ie n .IP """\-\-directory\-path=\f(CIdirs\f(CW""" 4
.el .IP "\f(CW\-\-directory\-path=\f(CIdirs\f(CW\fR" 4
.IX Item "--directory-path=dirs"
.PD
The \fB\-I\fR option specifies a list of search directories in
which to find source files. Environment variable \fI\s-1GPROF_PATH\s0\fR
can also be used to convey this information.
Used mostly for annotated source output.
.ie n .IP """\-J[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-J[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-J[symspec]"
.PD 0
.ie n .IP """\-\-no\-annotated\-source[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-no\-annotated\-source[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--no-annotated-source[=symspec]"
.PD
The \fB\-J\fR option causes \f(CW\*(C`gprof\*(C'\fR not to
print annotated source code.
If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints annotated source,
but excludes matching symbols.
.ie n .IP """\-L""" 4
.el .IP "\f(CW\-L\fR" 4
.IX Item "-L"
.PD 0
.ie n .IP """\-\-print\-path""" 4
.el .IP "\f(CW\-\-print\-path\fR" 4
.IX Item "--print-path"
.PD
Normally, source filenames are printed with the path
component suppressed. The \fB\-L\fR option causes \f(CW\*(C`gprof\*(C'\fR
to print the full pathname of
source filenames, which is determined
from symbolic debugging information in the image file
and is relative to the directory in which the compiler
was invoked.
.ie n .IP """\-p[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-p[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-p[symspec]"
.PD 0
.ie n .IP """\-\-flat\-profile[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-flat\-profile[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--flat-profile[=symspec]"
.PD
The \fB\-p\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a flat profile.
If \fIsymspec\fR is specified, print flat profile only for matching symbols.
.ie n .IP """\-P[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-P[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-P[symspec]"
.PD 0
.ie n .IP """\-\-no\-flat\-profile[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-no\-flat\-profile[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--no-flat-profile[=symspec]"
.PD
The \fB\-P\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress printing a flat profile.
If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints a flat profile,
but excludes matching symbols.
.ie n .IP """\-q[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-q[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-q[symspec]"
.PD 0
.ie n .IP """\-\-graph[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-graph[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--graph[=symspec]"
.PD
The \fB\-q\fR option causes \f(CW\*(C`gprof\*(C'\fR to print the call graph analysis.
If \fIsymspec\fR is specified, print call graph only for matching symbols
and their children.
.ie n .IP """\-Q[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-Q[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-Q[symspec]"
.PD 0
.ie n .IP """\-\-no\-graph[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-no\-graph[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--no-graph[=symspec]"
.PD
The \fB\-Q\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress printing the
call graph.
If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints a call graph,
but excludes matching symbols.
.ie n .IP """\-t""" 4
.el .IP "\f(CW\-t\fR" 4
.IX Item "-t"
.PD 0
.ie n .IP """\-\-table\-length=\f(CInum\f(CW""" 4
.el .IP "\f(CW\-\-table\-length=\f(CInum\f(CW\fR" 4
.IX Item "--table-length=num"
.PD
The \fB\-t\fR option causes the \fInum\fR most active source lines in
each source file to be listed when source annotation is enabled. The
default is 10.
.ie n .IP """\-y""" 4
.el .IP "\f(CW\-y\fR" 4
.IX Item "-y"
.PD 0
.ie n .IP """\-\-separate\-files""" 4
.el .IP "\f(CW\-\-separate\-files\fR" 4
.IX Item "--separate-files"
.PD
This option affects annotated source output only.
Normally, \f(CW\*(C`gprof\*(C'\fR prints annotated source files
to standard-output. If this option is specified,
annotated source for a file named \fIpath/\fIfilename\fI\fR
is generated in the file \fI\fIfilename\fI\-ann\fR. If the underlying
file system would truncate \fI\fIfilename\fI\-ann\fR so that it
overwrites the original \fI\fIfilename\fI\fR, \f(CW\*(C`gprof\*(C'\fR generates
annotated source in the file \fI\fIfilename\fI.ann\fR instead (if the
original file name has an extension, that extension is \fIreplaced\fR
with \fI.ann\fR).
.ie n .IP """\-Z[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-Z[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-Z[symspec]"
.PD 0
.ie n .IP """\-\-no\-exec\-counts[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-no\-exec\-counts[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--no-exec-counts[=symspec]"
.PD
The \fB\-Z\fR option causes \f(CW\*(C`gprof\*(C'\fR not to
print a tally of functions and the number of times each was called.
If \fIsymspec\fR is specified, print tally, but exclude matching symbols.
.ie n .IP """\-r""" 4
.el .IP "\f(CW\-r\fR" 4
.IX Item "-r"
.PD 0
.ie n .IP """\-\-function\-ordering""" 4
.el .IP "\f(CW\-\-function\-ordering\fR" 4
.IX Item "--function-ordering"
.PD
The \fB\-\-function\-ordering\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a
suggested function ordering for the program based on profiling data.
This option suggests an ordering which may improve paging, tlb and
cache behavior for the program on systems which support arbitrary
ordering of functions in an executable.
.Sp
The exact details of how to force the linker to place functions
in a particular order is system dependent and out of the scope of this
manual.
.ie n .IP """\-R \f(CImap_file\f(CW""" 4
.el .IP "\f(CW\-R \f(CImap_file\f(CW\fR" 4
.IX Item "-R map_file"
.PD 0
.ie n .IP """\-\-file\-ordering \f(CImap_file\f(CW""" 4
.el .IP "\f(CW\-\-file\-ordering \f(CImap_file\f(CW\fR" 4
.IX Item "--file-ordering map_file"
.PD
The \fB\-\-file\-ordering\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a
suggested .o link line ordering for the program based on profiling data.
This option suggests an ordering which may improve paging, tlb and
cache behavior for the program on systems which do not support arbitrary
ordering of functions in an executable.
.Sp
Use of the \fB\-a\fR argument is highly recommended with this option.
.Sp
The \fImap_file\fR argument is a pathname to a file which provides
function name to object file mappings. The format of the file is similar to
the output of the program \f(CW\*(C`nm\*(C'\fR.
.Sp
.Vb 8
\& c\-parse.o:00000000 T yyparse
\& c\-parse.o:00000004 C yyerrflag
\& c\-lang.o:00000000 T maybe_objc_method_name
\& c\-lang.o:00000000 T print_lang_statistics
\& c\-lang.o:00000000 T recognize_objc_keyword
\& c\-decl.o:00000000 T print_lang_identifier
\& c\-decl.o:00000000 T print_lang_type
\& ...
.Ve
.Sp
To create a \fImap_file\fR with \s-1GNU\s0 \f(CW\*(C`nm\*(C'\fR, type a command like
\&\f(CW\*(C`nm \-\-extern\-only \-\-defined\-only \-v \-\-print\-file\-name program\-name\*(C'\fR.
.ie n .IP """\-T""" 4
.el .IP "\f(CW\-T\fR" 4
.IX Item "-T"
.PD 0
.ie n .IP """\-\-traditional""" 4
.el .IP "\f(CW\-\-traditional\fR" 4
.IX Item "--traditional"
.PD
The \fB\-T\fR option causes \f(CW\*(C`gprof\*(C'\fR to print its output in
\&\*(L"traditional\*(R" \s-1BSD\s0 style.
.ie n .IP """\-w \f(CIwidth\f(CW""" 4
.el .IP "\f(CW\-w \f(CIwidth\f(CW\fR" 4
.IX Item "-w width"
.PD 0
.ie n .IP """\-\-width=\f(CIwidth\f(CW""" 4
.el .IP "\f(CW\-\-width=\f(CIwidth\f(CW\fR" 4
.IX Item "--width=width"
.PD
Sets width of output lines to \fIwidth\fR.
Currently only used when printing the function index at the bottom
of the call graph.
.ie n .IP """\-x""" 4
.el .IP "\f(CW\-x\fR" 4
.IX Item "-x"
.PD 0
.ie n .IP """\-\-all\-lines""" 4
.el .IP "\f(CW\-\-all\-lines\fR" 4
.IX Item "--all-lines"
.PD
This option affects annotated source output only.
By default, only the lines at the beginning of a basic-block
are annotated. If this option is specified, every line in
a basic-block is annotated by repeating the annotation for the
first line. This behavior is similar to \f(CW\*(C`tcov\*(C'\fR's \fB\-a\fR.
.ie n .IP """\-\-demangle[=\f(CIstyle\f(CW]""" 4
.el .IP "\f(CW\-\-demangle[=\f(CIstyle\f(CW]\fR" 4
.IX Item "--demangle[=style]"
.PD 0
.ie n .IP """\-\-no\-demangle""" 4
.el .IP "\f(CW\-\-no\-demangle\fR" 4
.IX Item "--no-demangle"
.PD
These options control whether \*(C+ symbol names should be demangled when
printing output. The default is to demangle symbols. The
\&\f(CW\*(C`\-\-no\-demangle\*(C'\fR option may be used to turn off demangling. Different
compilers have different mangling styles. The optional demangling style
argument can be used to choose an appropriate demangling style for your
compiler.
.SS "Analysis Options"
.IX Subsection "Analysis Options"
.ie n .IP """\-a""" 4
.el .IP "\f(CW\-a\fR" 4
.IX Item "-a"
.PD 0
.ie n .IP """\-\-no\-static""" 4
.el .IP "\f(CW\-\-no\-static\fR" 4
.IX Item "--no-static"
.PD
The \fB\-a\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress the printing of
statically declared (private) functions. (These are functions whose
names are not listed as global, and which are not visible outside the
file/function/block where they were defined.) Time spent in these
functions, calls to/from them, etc., will all be attributed to the
function that was loaded directly before it in the executable file.
This option affects both the flat profile and the call graph.
.ie n .IP """\-c""" 4
.el .IP "\f(CW\-c\fR" 4
.IX Item "-c"
.PD 0
.ie n .IP """\-\-static\-call\-graph""" 4
.el .IP "\f(CW\-\-static\-call\-graph\fR" 4
.IX Item "--static-call-graph"
.PD
The \fB\-c\fR option causes the call graph of the program to be
augmented by a heuristic which examines the text space of the object
file and identifies function calls in the binary machine code.
Since normal call graph records are only generated when functions are
entered, this option identifies children that could have been called,
but never were. Calls to functions that were not compiled with
profiling enabled are also identified, but only if symbol table
entries are present for them.
Calls to dynamic library routines are typically \fInot\fR found
by this option.
Parents or children identified via this heuristic
are indicated in the call graph with call counts of \fB0\fR.
.ie n .IP """\-D""" 4
.el .IP "\f(CW\-D\fR" 4
.IX Item "-D"
.PD 0
.ie n .IP """\-\-ignore\-non\-functions""" 4
.el .IP "\f(CW\-\-ignore\-non\-functions\fR" 4
.IX Item "--ignore-non-functions"
.PD
The \fB\-D\fR option causes \f(CW\*(C`gprof\*(C'\fR to ignore symbols which
are not known to be functions. This option will give more accurate
profile data on systems where it is supported (Solaris and \s-1HPUX\s0 for
example).
.ie n .IP """\-k \f(CIfrom\f(CW/\f(CIto\f(CW""" 4
.el .IP "\f(CW\-k \f(CIfrom\f(CW/\f(CIto\f(CW\fR" 4
.IX Item "-k from/to"
The \fB\-k\fR option allows you to delete from the call graph any arcs from
symbols matching symspec \fIfrom\fR to those matching symspec \fIto\fR.
.ie n .IP """\-l""" 4
.el .IP "\f(CW\-l\fR" 4
.IX Item "-l"
.PD 0
.ie n .IP """\-\-line""" 4
.el .IP "\f(CW\-\-line\fR" 4
.IX Item "--line"
.PD
The \fB\-l\fR option enables line-by-line profiling, which causes
histogram hits to be charged to individual source code lines,
instead of functions. This feature only works with programs compiled
by older versions of the \f(CW\*(C`gcc\*(C'\fR compiler. Newer versions of
\&\f(CW\*(C`gcc\*(C'\fR are designed to work with the \f(CW\*(C`gcov\*(C'\fR tool instead.
.Sp
If the program was compiled with basic-block counting enabled,
this option will also identify how many times each line of
code was executed.
While line-by-line profiling can help isolate where in a large function
a program is spending its time, it also significantly increases
the running time of \f(CW\*(C`gprof\*(C'\fR, and magnifies statistical
inaccuracies.
.ie n .IP """\-m \f(CInum\f(CW""" 4
.el .IP "\f(CW\-m \f(CInum\f(CW\fR" 4
.IX Item "-m num"
.PD 0
.ie n .IP """\-\-min\-count=\f(CInum\f(CW""" 4
.el .IP "\f(CW\-\-min\-count=\f(CInum\f(CW\fR" 4
.IX Item "--min-count=num"
.PD
This option affects execution count output only.
Symbols that are executed less than \fInum\fR times are suppressed.
.ie n .IP """\-n\f(CIsymspec\f(CW""" 4
.el .IP "\f(CW\-n\f(CIsymspec\f(CW\fR" 4
.IX Item "-nsymspec"
.PD 0
.ie n .IP """\-\-time=\f(CIsymspec\f(CW""" 4
.el .IP "\f(CW\-\-time=\f(CIsymspec\f(CW\fR" 4
.IX Item "--time=symspec"
.PD
The \fB\-n\fR option causes \f(CW\*(C`gprof\*(C'\fR, in its call graph analysis,
to only propagate times for symbols matching \fIsymspec\fR.
.ie n .IP """\-N\f(CIsymspec\f(CW""" 4
.el .IP "\f(CW\-N\f(CIsymspec\f(CW\fR" 4
.IX Item "-Nsymspec"
.PD 0
.ie n .IP """\-\-no\-time=\f(CIsymspec\f(CW""" 4
.el .IP "\f(CW\-\-no\-time=\f(CIsymspec\f(CW\fR" 4
.IX Item "--no-time=symspec"
.PD
The \fB\-n\fR option causes \f(CW\*(C`gprof\*(C'\fR, in its call graph analysis,
not to propagate times for symbols matching \fIsymspec\fR.
.ie n .IP """\-S\f(CIfilename\f(CW""" 4
.el .IP "\f(CW\-S\f(CIfilename\f(CW\fR" 4
.IX Item "-Sfilename"
.PD 0
.ie n .IP """\-\-external\-symbol\-table=\f(CIfilename\f(CW""" 4
.el .IP "\f(CW\-\-external\-symbol\-table=\f(CIfilename\f(CW\fR" 4
.IX Item "--external-symbol-table=filename"
.PD
The \fB\-S\fR option causes \f(CW\*(C`gprof\*(C'\fR to read an external symbol table
file, such as \fI/proc/kallsyms\fR, rather than read the symbol table
from the given object file (the default is \f(CW\*(C`a.out\*(C'\fR). This is useful
for profiling kernel modules.
.ie n .IP """\-z""" 4
.el .IP "\f(CW\-z\fR" 4
.IX Item "-z"
.PD 0
.ie n .IP """\-\-display\-unused\-functions""" 4
.el .IP "\f(CW\-\-display\-unused\-functions\fR" 4
.IX Item "--display-unused-functions"
.PD
If you give the \fB\-z\fR option, \f(CW\*(C`gprof\*(C'\fR will mention all
functions in the flat profile, even those that were never called, and
that had no time spent in them. This is useful in conjunction with the
\&\fB\-c\fR option for discovering which routines were never called.
.SS "Miscellaneous Options"
.IX Subsection "Miscellaneous Options"
.ie n .IP """\-d[\f(CInum\f(CW]""" 4
.el .IP "\f(CW\-d[\f(CInum\f(CW]\fR" 4
.IX Item "-d[num]"
.PD 0
.ie n .IP """\-\-debug[=\f(CInum\f(CW]""" 4
.el .IP "\f(CW\-\-debug[=\f(CInum\f(CW]\fR" 4
.IX Item "--debug[=num]"
.PD
The \fB\-d\fR \fInum\fR option specifies debugging options.
If \fInum\fR is not specified, enable all debugging.
.ie n .IP """\-h""" 4
.el .IP "\f(CW\-h\fR" 4
.IX Item "-h"
.PD 0
.ie n .IP """\-\-help""" 4
.el .IP "\f(CW\-\-help\fR" 4
.IX Item "--help"
.PD
The \fB\-h\fR option prints command line usage.
.ie n .IP """\-O\f(CIname\f(CW""" 4
.el .IP "\f(CW\-O\f(CIname\f(CW\fR" 4
.IX Item "-Oname"
.PD 0
.ie n .IP """\-\-file\-format=\f(CIname\f(CW""" 4
.el .IP "\f(CW\-\-file\-format=\f(CIname\f(CW\fR" 4
.IX Item "--file-format=name"
.PD
Selects the format of the profile data files. Recognized formats are
\&\fBauto\fR (the default), \fBbsd\fR, \fB4.4bsd\fR, \fBmagic\fR, and
\&\fBprof\fR (not yet supported).
.ie n .IP """\-s""" 4
.el .IP "\f(CW\-s\fR" 4
.IX Item "-s"
.PD 0
.ie n .IP """\-\-sum""" 4
.el .IP "\f(CW\-\-sum\fR" 4
.IX Item "--sum"
.PD
The \fB\-s\fR option causes \f(CW\*(C`gprof\*(C'\fR to summarize the information
in the profile data files it read in, and write out a profile data
file called \fIgmon.sum\fR, which contains all the information from
the profile data files that \f(CW\*(C`gprof\*(C'\fR read in. The file \fIgmon.sum\fR
may be one of the specified input files; the effect of this is to
merge the data in the other input files into \fIgmon.sum\fR.
.Sp
Eventually you can run \f(CW\*(C`gprof\*(C'\fR again without \fB\-s\fR to analyze the
cumulative data in the file \fIgmon.sum\fR.
.ie n .IP """\-v""" 4
.el .IP "\f(CW\-v\fR" 4
.IX Item "-v"
.PD 0
.ie n .IP """\-\-version""" 4
.el .IP "\f(CW\-\-version\fR" 4
.IX Item "--version"
.PD
The \fB\-v\fR flag causes \f(CW\*(C`gprof\*(C'\fR to print the current version
number, and then exit.
.SS "Deprecated Options"
.IX Subsection "Deprecated Options"
These options have been replaced with newer versions that use symspecs.
.ie n .IP """\-e \f(CIfunction_name\f(CW""" 4
.el .IP "\f(CW\-e \f(CIfunction_name\f(CW\fR" 4
.IX Item "-e function_name"
The \fB\-e\fR \fIfunction\fR option tells \f(CW\*(C`gprof\*(C'\fR to not print
information about the function \fIfunction_name\fR (and its
children...) in the call graph. The function will still be listed
as a child of any functions that call it, but its index number will be
shown as \fB[not printed]\fR. More than one \fB\-e\fR option may be
given; only one \fIfunction_name\fR may be indicated with each \fB\-e\fR
option.
.ie n .IP """\-E \f(CIfunction_name\f(CW""" 4
.el .IP "\f(CW\-E \f(CIfunction_name\f(CW\fR" 4
.IX Item "-E function_name"
The \f(CW\*(C`\-E \f(CIfunction\f(CW\*(C'\fR option works like the \f(CW\*(C`\-e\*(C'\fR option, but
time spent in the function (and children who were not called from
anywhere else), will not be used to compute the percentages-of-time for
the call graph. More than one \fB\-E\fR option may be given; only one
\&\fIfunction_name\fR may be indicated with each \fB\-E\fR option.
.ie n .IP """\-f \f(CIfunction_name\f(CW""" 4
.el .IP "\f(CW\-f \f(CIfunction_name\f(CW\fR" 4
.IX Item "-f function_name"
The \fB\-f\fR \fIfunction\fR option causes \f(CW\*(C`gprof\*(C'\fR to limit the
call graph to the function \fIfunction_name\fR and its children (and
their children...). More than one \fB\-f\fR option may be given;
only one \fIfunction_name\fR may be indicated with each \fB\-f\fR
option.
.ie n .IP """\-F \f(CIfunction_name\f(CW""" 4
.el .IP "\f(CW\-F \f(CIfunction_name\f(CW\fR" 4
.IX Item "-F function_name"
The \fB\-F\fR \fIfunction\fR option works like the \f(CW\*(C`\-f\*(C'\fR option, but
only time spent in the function and its children (and their
children...) will be used to determine total-time and
percentages-of-time for the call graph. More than one \fB\-F\fR option
may be given; only one \fIfunction_name\fR may be indicated with each
\&\fB\-F\fR option. The \fB\-F\fR option overrides the \fB\-E\fR option.
.SH "FILES"
.IX Header "FILES"
.ie n .IP """\f(CIa.out\f(CW""" 4
.el .IP "\f(CW\f(CIa.out\f(CW\fR" 4
.IX Item "a.out"
the namelist and text space.
.ie n .IP """\f(CIgmon.out\f(CW""" 4
.el .IP "\f(CW\f(CIgmon.out\f(CW\fR" 4
.IX Item "gmon.out"
dynamic call graph and profile.
.ie n .IP """\f(CIgmon.sum\f(CW""" 4
.el .IP "\f(CW\f(CIgmon.sum\f(CW\fR" 4
.IX Item "gmon.sum"
summarized dynamic call graph and profile.
.SH "BUGS"
.IX Header "BUGS"
The granularity of the sampling is shown, but remains
statistical at best.
We assume that the time for each execution of a function
can be expressed by the total time for the function divided
by the number of times the function is called.
Thus the time propagated along the call graph arcs to the function's
parents is directly proportional to the number of times that
arc is traversed.
.PP
Parents that are not themselves profiled will have the time of
their profiled children propagated to them, but they will appear
to be spontaneously invoked in the call graph listing, and will
not have their time propagated further.
Similarly, signal catchers, even though profiled, will appear
to be spontaneous (although for more obscure reasons).
Any profiled children of signal catchers should have their times
propagated properly, unless the signal catcher was invoked during
the execution of the profiling routine, in which case all is lost.
.PP
The profiled program must call \f(CW\*(C`exit\*(C'\fR(2)
or return normally for the profiling information to be saved
in the \fIgmon.out\fR file.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fImonitor\fR\|(3), \fIprofil\fR\|(2), \fIcc\fR\|(1), \fIprof\fR\|(1), and the Info entry for \fIgprof\fR.
.PP
\&\*(L"An Execution Profiler for Modular Programs\*(R",
by S. Graham, P. Kessler, M. McKusick;
Software \- Practice and Experience,
Vol. 13, pp. 671\-685, 1983.
.PP
\&\*(L"gprof: A Call Graph Execution Profiler\*(R",
by S. Graham, P. Kessler, M. McKusick;
Proceedings of the \s-1SIGPLAN\s0 '82 Symposium on Compiler Construction,
\&\s-1SIGPLAN\s0 Notices, Vol. 17, No 6, pp. 120\-126, June 1982.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1988, 1992, 1997, 1998, 1999, 2000, 2001, 2003,
2007, 2008, 2009 Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,245 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "NLMCONV 1"
.TH NLMCONV 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
nlmconv \- converts object code into an NLM.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
nlmconv [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR]
[\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR]
[\fB\-T\fR \fIheaderfile\fR|\fB\-\-header\-file=\fR\fIheaderfile\fR]
[\fB\-d\fR|\fB\-\-debug\fR] [\fB\-l\fR \fIlinker\fR|\fB\-\-linker=\fR\fIlinker\fR]
[\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
\fIinfile\fR \fIoutfile\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBnlmconv\fR converts the relocatable \fBi386\fR object file
\&\fIinfile\fR into the NetWare Loadable Module \fIoutfile\fR, optionally
reading \fIheaderfile\fR for \s-1NLM\s0 header information. For instructions
on writing the \s-1NLM\s0 command file language used in header files, see the
\&\fBlinkers\fR section, \fB\s-1NLMLINK\s0\fR in particular, of the \fI\s-1NLM\s0
Development and Tools Overview\fR, which is part of the \s-1NLM\s0 Software
Developer's Kit (\*(L"\s-1NLM\s0 \s-1SDK\s0\*(R"), available from Novell, Inc.
\&\fBnlmconv\fR uses the \s-1GNU\s0 Binary File Descriptor library to read
\&\fIinfile\fR;
.PP
\&\fBnlmconv\fR can perform a link step. In other words, you can list
more than one object file for input if you list them in the definitions
file (rather than simply specifying one input file on the command line).
In this case, \fBnlmconv\fR calls the linker for you.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-I\fR \fIbfdname\fR" 4
.IX Item "-I bfdname"
.PD 0
.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
.IX Item "--input-target=bfdname"
.PD
Object format of the input file. \fBnlmconv\fR can usually determine
the format of a given file (so no default is necessary).
.IP "\fB\-O\fR \fIbfdname\fR" 4
.IX Item "-O bfdname"
.PD 0
.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
.IX Item "--output-target=bfdname"
.PD
Object format of the output file. \fBnlmconv\fR infers the output
format based on the input format, e.g. for a \fBi386\fR input file the
output format is \fBnlm32\-i386\fR.
.IP "\fB\-T\fR \fIheaderfile\fR" 4
.IX Item "-T headerfile"
.PD 0
.IP "\fB\-\-header\-file=\fR\fIheaderfile\fR" 4
.IX Item "--header-file=headerfile"
.PD
Reads \fIheaderfile\fR for \s-1NLM\s0 header information. For instructions on
writing the \s-1NLM\s0 command file language used in header files, see see the
\&\fBlinkers\fR section, of the \fI\s-1NLM\s0 Development and Tools
Overview\fR, which is part of the \s-1NLM\s0 Software Developer's Kit, available
from Novell, Inc.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-debug\fR" 4
.IX Item "--debug"
.PD
Displays (on standard error) the linker command line used by \fBnlmconv\fR.
.IP "\fB\-l\fR \fIlinker\fR" 4
.IX Item "-l linker"
.PD 0
.IP "\fB\-\-linker=\fR\fIlinker\fR" 4
.IX Item "--linker=linker"
.PD
Use \fIlinker\fR for any linking. \fIlinker\fR can be an absolute or a
relative pathname.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Prints a usage summary.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Prints the version number for \fBnlmconv\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,519 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "NM 1"
.TH NM 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
nm \- list symbols from object files
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
nm [\fB\-a\fR|\fB\-\-debug\-syms\fR]
[\fB\-g\fR|\fB\-\-extern\-only\fR][\fB\-\-plugin\fR \fIname\fR]
[\fB\-B\fR] [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] [\fB\-D\fR|\fB\-\-dynamic\fR]
[\fB\-S\fR|\fB\-\-print\-size\fR] [\fB\-s\fR|\fB\-\-print\-armap\fR]
[\fB\-A\fR|\fB\-o\fR|\fB\-\-print\-file\-name\fR][\fB\-\-special\-syms\fR]
[\fB\-n\fR|\fB\-v\fR|\fB\-\-numeric\-sort\fR] [\fB\-p\fR|\fB\-\-no\-sort\fR]
[\fB\-r\fR|\fB\-\-reverse\-sort\fR] [\fB\-\-size\-sort\fR] [\fB\-u\fR|\fB\-\-undefined\-only\fR]
[\fB\-t\fR \fIradix\fR|\fB\-\-radix=\fR\fIradix\fR] [\fB\-P\fR|\fB\-\-portability\fR]
[\fB\-\-target=\fR\fIbfdname\fR] [\fB\-f\fR\fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
[\fB\-\-defined\-only\fR] [\fB\-l\fR|\fB\-\-line\-numbers\fR] [\fB\-\-no\-demangle\fR]
[\fB\-V\fR|\fB\-\-version\fR] [\fB\-X 32_64\fR] [\fB\-\-help\fR] [\fIobjfile\fR...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\s-1GNU\s0 \fBnm\fR lists the symbols from object files \fIobjfile\fR....
If no object files are listed as arguments, \fBnm\fR assumes the file
\&\fIa.out\fR.
.PP
For each symbol, \fBnm\fR shows:
.IP "\(bu" 4
The symbol value, in the radix selected by options (see below), or
hexadecimal by default.
.IP "\(bu" 4
The symbol type. At least the following types are used; others are, as
well, depending on the object file format. If lowercase, the symbol is
usually local; if uppercase, the symbol is global (external). There
are however a few lowercase symbols that are shown for special global
symbols (\f(CW\*(C`u\*(C'\fR, \f(CW\*(C`v\*(C'\fR and \f(CW\*(C`w\*(C'\fR).
.RS 4
.ie n .IP """A""" 4
.el .IP "\f(CWA\fR" 4
.IX Item "A"
The symbol's value is absolute, and will not be changed by further
linking.
.ie n .IP """B""" 4
.el .IP "\f(CWB\fR" 4
.IX Item "B"
.PD 0
.ie n .IP """b""" 4
.el .IP "\f(CWb\fR" 4
.IX Item "b"
.PD
The symbol is in the uninitialized data section (known as \s-1BSS\s0).
.ie n .IP """C""" 4
.el .IP "\f(CWC\fR" 4
.IX Item "C"
The symbol is common. Common symbols are uninitialized data. When
linking, multiple common symbols may appear with the same name. If the
symbol is defined anywhere, the common symbols are treated as undefined
references.
.ie n .IP """D""" 4
.el .IP "\f(CWD\fR" 4
.IX Item "D"
.PD 0
.ie n .IP """d""" 4
.el .IP "\f(CWd\fR" 4
.IX Item "d"
.PD
The symbol is in the initialized data section.
.ie n .IP """G""" 4
.el .IP "\f(CWG\fR" 4
.IX Item "G"
.PD 0
.ie n .IP """g""" 4
.el .IP "\f(CWg\fR" 4
.IX Item "g"
.PD
The symbol is in an initialized data section for small objects. Some
object file formats permit more efficient access to small data objects,
such as a global int variable as opposed to a large global array.
.ie n .IP """i""" 4
.el .IP "\f(CWi\fR" 4
.IX Item "i"
For \s-1PE\s0 format files this indicates that the symbol is in a section
specific to the implementation of DLLs. For \s-1ELF\s0 format files this
indicates that the symbol is an indirect function. This is a \s-1GNU\s0
extension to the standard set of \s-1ELF\s0 symbol types. It indicates a
symbol which if referenced by a relocation does not evaluate to its
address, but instead must be invoked at runtime. The runtime
execution will then return the value to be used in the relocation.
.ie n .IP """N""" 4
.el .IP "\f(CWN\fR" 4
.IX Item "N"
The symbol is a debugging symbol.
.ie n .IP """p""" 4
.el .IP "\f(CWp\fR" 4
.IX Item "p"
The symbols is in a stack unwind section.
.ie n .IP """R""" 4
.el .IP "\f(CWR\fR" 4
.IX Item "R"
.PD 0
.ie n .IP """r""" 4
.el .IP "\f(CWr\fR" 4
.IX Item "r"
.PD
The symbol is in a read only data section.
.ie n .IP """S""" 4
.el .IP "\f(CWS\fR" 4
.IX Item "S"
.PD 0
.ie n .IP """s""" 4
.el .IP "\f(CWs\fR" 4
.IX Item "s"
.PD
The symbol is in an uninitialized data section for small objects.
.ie n .IP """T""" 4
.el .IP "\f(CWT\fR" 4
.IX Item "T"
.PD 0
.ie n .IP """t""" 4
.el .IP "\f(CWt\fR" 4
.IX Item "t"
.PD
The symbol is in the text (code) section.
.ie n .IP """U""" 4
.el .IP "\f(CWU\fR" 4
.IX Item "U"
The symbol is undefined.
.ie n .IP """u""" 4
.el .IP "\f(CWu\fR" 4
.IX Item "u"
The symbol is a unique global symbol. This is a \s-1GNU\s0 extension to the
standard set of \s-1ELF\s0 symbol bindings. For such a symbol the dynamic linker
will make sure that in the entire process there is just one symbol with
this name and type in use.
.ie n .IP """V""" 4
.el .IP "\f(CWV\fR" 4
.IX Item "V"
.PD 0
.ie n .IP """v""" 4
.el .IP "\f(CWv\fR" 4
.IX Item "v"
.PD
The symbol is a weak object. When a weak defined symbol is linked with
a normal defined symbol, the normal defined symbol is used with no error.
When a weak undefined symbol is linked and the symbol is not defined,
the value of the weak symbol becomes zero with no error. On some
systems, uppercase indicates that a default value has been specified.
.ie n .IP """W""" 4
.el .IP "\f(CWW\fR" 4
.IX Item "W"
.PD 0
.ie n .IP """w""" 4
.el .IP "\f(CWw\fR" 4
.IX Item "w"
.PD
The symbol is a weak symbol that has not been specifically tagged as a
weak object symbol. When a weak defined symbol is linked with a normal
defined symbol, the normal defined symbol is used with no error.
When a weak undefined symbol is linked and the symbol is not defined,
the value of the symbol is determined in a system-specific manner without
error. On some systems, uppercase indicates that a default value has been
specified.
.ie n .IP """\-""" 4
.el .IP "\f(CW\-\fR" 4
.IX Item "-"
The symbol is a stabs symbol in an a.out object file. In this case, the
next values printed are the stabs other field, the stabs desc field, and
the stab type. Stabs symbols are used to hold debugging information.
.ie n .IP """?""" 4
.el .IP "\f(CW?\fR" 4
.IX Item "?"
The symbol type is unknown, or object file format specific.
.RE
.RS 4
.RE
.IP "\(bu" 4
The symbol name.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent.
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-o\fR" 4
.IX Item "-o"
.IP "\fB\-\-print\-file\-name\fR" 4
.IX Item "--print-file-name"
.PD
Precede each symbol by the name of the input file (or archive member)
in which it was found, rather than identifying the input file once only,
before all of its symbols.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-debug\-syms\fR" 4
.IX Item "--debug-syms"
.PD
Display all symbols, even debugger-only symbols; normally these are not
listed.
.IP "\fB\-B\fR" 4
.IX Item "-B"
The same as \fB\-\-format=bsd\fR (for compatibility with the \s-1MIPS\s0 \fBnm\fR).
.IP "\fB\-C\fR" 4
.IX Item "-C"
.PD 0
.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
.IX Item "--demangle[=style]"
.PD
Decode (\fIdemangle\fR) 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.
.IP "\fB\-\-no\-demangle\fR" 4
.IX Item "--no-demangle"
Do not demangle low-level symbol names. This is the default.
.IP "\fB\-D\fR" 4
.IX Item "-D"
.PD 0
.IP "\fB\-\-dynamic\fR" 4
.IX Item "--dynamic"
.PD
Display the dynamic symbols rather than the normal symbols. This is
only meaningful for dynamic objects, such as certain types of shared
libraries.
.IP "\fB\-f\fR \fIformat\fR" 4
.IX Item "-f format"
.PD 0
.IP "\fB\-\-format=\fR\fIformat\fR" 4
.IX Item "--format=format"
.PD
Use the output format \fIformat\fR, which can be \f(CW\*(C`bsd\*(C'\fR,
\&\f(CW\*(C`sysv\*(C'\fR, or \f(CW\*(C`posix\*(C'\fR. The default is \f(CW\*(C`bsd\*(C'\fR.
Only the first character of \fIformat\fR is significant; it can be
either upper or lower case.
.IP "\fB\-g\fR" 4
.IX Item "-g"
.PD 0
.IP "\fB\-\-extern\-only\fR" 4
.IX Item "--extern-only"
.PD
Display only external symbols.
.IP "\fB\-\-plugin\fR \fIname\fR" 4
.IX Item "--plugin name"
Load the plugin called \fIname\fR to add support for extra target
types. This option is only available if the toolchain has been built
with plugin support enabled.
.IP "\fB\-l\fR" 4
.IX Item "-l"
.PD 0
.IP "\fB\-\-line\-numbers\fR" 4
.IX Item "--line-numbers"
.PD
For each symbol, use debugging information to try to find a filename and
line number. For a defined symbol, look for the line number of the
address of the symbol. For an undefined symbol, look for the line
number of a relocation entry which refers to the symbol. If line number
information can be found, print it after the other symbol information.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-v\fR" 4
.IX Item "-v"
.IP "\fB\-\-numeric\-sort\fR" 4
.IX Item "--numeric-sort"
.PD
Sort symbols numerically by their addresses, rather than alphabetically
by their names.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-no\-sort\fR" 4
.IX Item "--no-sort"
.PD
Do not bother to sort the symbols in any order; print them in the order
encountered.
.IP "\fB\-P\fR" 4
.IX Item "-P"
.PD 0
.IP "\fB\-\-portability\fR" 4
.IX Item "--portability"
.PD
Use the \s-1POSIX\s0.2 standard output format instead of the default format.
Equivalent to \fB\-f posix\fR.
.IP "\fB\-S\fR" 4
.IX Item "-S"
.PD 0
.IP "\fB\-\-print\-size\fR" 4
.IX Item "--print-size"
.PD
Print both value and size of defined symbols for the \f(CW\*(C`bsd\*(C'\fR output style.
This option has no effect for object formats that do not record symbol
sizes, unless \fB\-\-size\-sort\fR is also used in which case a
calculated size is displayed.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-print\-armap\fR" 4
.IX Item "--print-armap"
.PD
When listing symbols from archive members, include the index: a mapping
(stored in the archive by \fBar\fR or \fBranlib\fR) of which modules
contain definitions for which names.
.IP "\fB\-r\fR" 4
.IX Item "-r"
.PD 0
.IP "\fB\-\-reverse\-sort\fR" 4
.IX Item "--reverse-sort"
.PD
Reverse the order of the sort (whether numeric or alphabetic); let the
last come first.
.IP "\fB\-\-size\-sort\fR" 4
.IX Item "--size-sort"
Sort symbols by size. The size is computed as the difference between
the value of the symbol and the value of the symbol with the next higher
value. If the \f(CW\*(C`bsd\*(C'\fR output format is used the size of the symbol
is printed, rather than the value, and \fB\-S\fR must be used in order
both size and value to be printed.
.IP "\fB\-\-special\-syms\fR" 4
.IX Item "--special-syms"
Display symbols which have a target-specific special meaning. These
symbols are usually used by the target for some special processing and
are not normally helpful when included included in the normal symbol
lists. For example for \s-1ARM\s0 targets this option would skip the mapping
symbols used to mark transitions between \s-1ARM\s0 code, \s-1THUMB\s0 code and
data.
.IP "\fB\-t\fR \fIradix\fR" 4
.IX Item "-t radix"
.PD 0
.IP "\fB\-\-radix=\fR\fIradix\fR" 4
.IX Item "--radix=radix"
.PD
Use \fIradix\fR as the radix for printing the symbol values. It must be
\&\fBd\fR for decimal, \fBo\fR for octal, or \fBx\fR for hexadecimal.
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
Specify an object code format other than your system's default format.
.IP "\fB\-u\fR" 4
.IX Item "-u"
.PD 0
.IP "\fB\-\-undefined\-only\fR" 4
.IX Item "--undefined-only"
.PD
Display only undefined symbols (those external to each object file).
.IP "\fB\-\-defined\-only\fR" 4
.IX Item "--defined-only"
Display only defined symbols for each object file.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Show the version number of \fBnm\fR and exit.
.IP "\fB\-X\fR" 4
.IX Item "-X"
This option is ignored for compatibility with the \s-1AIX\s0 version of
\&\fBnm\fR. It takes one parameter which must be the string
\&\fB32_64\fR. The default mode of \s-1AIX\s0 \fBnm\fR corresponds
to \fB\-X 32\fR, which is not supported by \s-1GNU\s0 \fBnm\fR.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Show a summary of the options to \fBnm\fR and exit.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,841 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "OBJDUMP 1"
.TH OBJDUMP 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
objdump \- display information from object files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
objdump [\fB\-a\fR|\fB\-\-archive\-headers\fR]
[\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
[\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR] ]
[\fB\-d\fR|\fB\-\-disassemble\fR]
[\fB\-D\fR|\fB\-\-disassemble\-all\fR]
[\fB\-z\fR|\fB\-\-disassemble\-zeroes\fR]
[\fB\-EB\fR|\fB\-EL\fR|\fB\-\-endian=\fR{big | little }]
[\fB\-f\fR|\fB\-\-file\-headers\fR]
[\fB\-F\fR|\fB\-\-file\-offsets\fR]
[\fB\-\-file\-start\-context\fR]
[\fB\-g\fR|\fB\-\-debugging\fR]
[\fB\-e\fR|\fB\-\-debugging\-tags\fR]
[\fB\-h\fR|\fB\-\-section\-headers\fR|\fB\-\-headers\fR]
[\fB\-i\fR|\fB\-\-info\fR]
[\fB\-j\fR \fIsection\fR|\fB\-\-section=\fR\fIsection\fR]
[\fB\-l\fR|\fB\-\-line\-numbers\fR]
[\fB\-S\fR|\fB\-\-source\fR]
[\fB\-m\fR \fImachine\fR|\fB\-\-architecture=\fR\fImachine\fR]
[\fB\-M\fR \fIoptions\fR|\fB\-\-disassembler\-options=\fR\fIoptions\fR]
[\fB\-p\fR|\fB\-\-private\-headers\fR]
[\fB\-P\fR \fIoptions\fR|\fB\-\-private=\fR\fIoptions\fR]
[\fB\-r\fR|\fB\-\-reloc\fR]
[\fB\-R\fR|\fB\-\-dynamic\-reloc\fR]
[\fB\-s\fR|\fB\-\-full\-contents\fR]
[\fB\-W[lLiaprmfFsoRt]\fR|
\fB\-\-dwarf\fR[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]]
[\fB\-G\fR|\fB\-\-stabs\fR]
[\fB\-t\fR|\fB\-\-syms\fR]
[\fB\-T\fR|\fB\-\-dynamic\-syms\fR]
[\fB\-x\fR|\fB\-\-all\-headers\fR]
[\fB\-w\fR|\fB\-\-wide\fR]
[\fB\-\-start\-address=\fR\fIaddress\fR]
[\fB\-\-stop\-address=\fR\fIaddress\fR]
[\fB\-\-prefix\-addresses\fR]
[\fB\-\-[no\-]show\-raw\-insn\fR]
[\fB\-\-adjust\-vma=\fR\fIoffset\fR]
[\fB\-\-special\-syms\fR]
[\fB\-\-prefix=\fR\fIprefix\fR]
[\fB\-\-prefix\-strip=\fR\fIlevel\fR]
[\fB\-\-insn\-width=\fR\fIwidth\fR]
[\fB\-V\fR|\fB\-\-version\fR]
[\fB\-H\fR|\fB\-\-help\fR]
\fIobjfile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBobjdump\fR displays information about one or more object files.
The options control what particular information to display. This
information is mostly useful to programmers who are working on the
compilation tools, as opposed to programmers who just want their
program to compile and work.
.PP
\&\fIobjfile\fR... are the object files to be examined. When you
specify archives, \fBobjdump\fR shows information on each of the member
object files.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent. At least one option from the list
\&\fB\-a,\-d,\-D,\-e,\-f,\-g,\-G,\-h,\-H,\-p,\-P,\-r,\-R,\-s,\-S,\-t,\-T,\-V,\-x\fR must be given.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-archive\-header\fR" 4
.IX Item "--archive-header"
.PD
If any of the \fIobjfile\fR files are archives, display the archive
header information (in a format similar to \fBls \-l\fR). Besides the
information you could list with \fBar tv\fR, \fBobjdump \-a\fR shows
the object file format of each archive member.
.IP "\fB\-\-adjust\-vma=\fR\fIoffset\fR" 4
.IX Item "--adjust-vma=offset"
When dumping information, first add \fIoffset\fR to all the section
addresses. This is useful if the section addresses do not correspond to
the symbol table, which can happen when putting sections at particular
addresses when using a format which can not represent section addresses,
such as a.out.
.IP "\fB\-b\fR \fIbfdname\fR" 4
.IX Item "-b bfdname"
.PD 0
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
.PD
Specify that the object-code format for the object files is
\&\fIbfdname\fR. This option may not be necessary; \fIobjdump\fR can
automatically recognize many formats.
.Sp
For example,
.Sp
.Vb 1
\& objdump \-b oasys \-m vax \-h fu.o
.Ve
.Sp
displays summary information from the section headers (\fB\-h\fR) of
\&\fIfu.o\fR, which is explicitly identified (\fB\-m\fR) as a \s-1VAX\s0 object
file in the format produced by Oasys compilers. You can list the
formats available with the \fB\-i\fR option.
.IP "\fB\-C\fR" 4
.IX Item "-C"
.PD 0
.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
.IX Item "--demangle[=style]"
.PD
Decode (\fIdemangle\fR) 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.
.IP "\fB\-g\fR" 4
.IX Item "-g"
.PD 0
.IP "\fB\-\-debugging\fR" 4
.IX Item "--debugging"
.PD
Display debugging information. This attempts to parse \s-1STABS\s0 and \s-1IEEE\s0
debugging format information stored in the file and print it out using
a C like syntax. If neither of these formats are found this option
falls back on the \fB\-W\fR option to print any \s-1DWARF\s0 information in
the file.
.IP "\fB\-e\fR" 4
.IX Item "-e"
.PD 0
.IP "\fB\-\-debugging\-tags\fR" 4
.IX Item "--debugging-tags"
.PD
Like \fB\-g\fR, but the information is generated in a format compatible
with ctags tool.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-disassemble\fR" 4
.IX Item "--disassemble"
.PD
Display the assembler mnemonics for the machine instructions from
\&\fIobjfile\fR. This option only disassembles those sections which are
expected to contain instructions.
.IP "\fB\-D\fR" 4
.IX Item "-D"
.PD 0
.IP "\fB\-\-disassemble\-all\fR" 4
.IX Item "--disassemble-all"
.PD
Like \fB\-d\fR, but disassemble the contents of all sections, not just
those expected to contain instructions.
.Sp
If the target is an \s-1ARM\s0 architecture this switch also has the effect
of forcing the disassembler to decode pieces of data found in code
sections as if they were instructions.
.IP "\fB\-\-prefix\-addresses\fR" 4
.IX Item "--prefix-addresses"
When disassembling, print the complete address on each line. This is
the older disassembly format.
.IP "\fB\-EB\fR" 4
.IX Item "-EB"
.PD 0
.IP "\fB\-EL\fR" 4
.IX Item "-EL"
.IP "\fB\-\-endian={big|little}\fR" 4
.IX Item "--endian={big|little}"
.PD
Specify the endianness of the object files. This only affects
disassembly. This can be useful when disassembling a file format which
does not describe endianness information, such as S\-records.
.IP "\fB\-f\fR" 4
.IX Item "-f"
.PD 0
.IP "\fB\-\-file\-headers\fR" 4
.IX Item "--file-headers"
.PD
Display summary information from the overall header of
each of the \fIobjfile\fR files.
.IP "\fB\-F\fR" 4
.IX Item "-F"
.PD 0
.IP "\fB\-\-file\-offsets\fR" 4
.IX Item "--file-offsets"
.PD
When disassembling sections, whenever a symbol is displayed, also
display the file offset of the region of data that is about to be
dumped. If zeroes are being skipped, then when disassembly resumes,
tell the user how many zeroes were skipped and the file offset of the
location from where the disassembly resumes. When dumping sections,
display the file offset of the location from where the dump starts.
.IP "\fB\-\-file\-start\-context\fR" 4
.IX Item "--file-start-context"
Specify that when displaying interlisted source code/disassembly
(assumes \fB\-S\fR) from a file that has not yet been displayed, extend the
context to the start of the file.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-section\-headers\fR" 4
.IX Item "--section-headers"
.IP "\fB\-\-headers\fR" 4
.IX Item "--headers"
.PD
Display summary information from the section headers of the
object file.
.Sp
File segments may be relocated to nonstandard addresses, for example by
using the \fB\-Ttext\fR, \fB\-Tdata\fR, or \fB\-Tbss\fR options to
\&\fBld\fR. However, some object file formats, such as a.out, do not
store the starting address of the file segments. In those situations,
although \fBld\fR relocates the sections correctly, using \fBobjdump
\&\-h\fR to list the file section headers cannot show the correct addresses.
Instead, it shows the usual addresses, which are implicit for the
target.
.IP "\fB\-H\fR" 4
.IX Item "-H"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Print a summary of the options to \fBobjdump\fR and exit.
.IP "\fB\-i\fR" 4
.IX Item "-i"
.PD 0
.IP "\fB\-\-info\fR" 4
.IX Item "--info"
.PD
Display a list showing all architectures and object formats available
for specification with \fB\-b\fR or \fB\-m\fR.
.IP "\fB\-j\fR \fIname\fR" 4
.IX Item "-j name"
.PD 0
.IP "\fB\-\-section=\fR\fIname\fR" 4
.IX Item "--section=name"
.PD
Display information only for section \fIname\fR.
.IP "\fB\-l\fR" 4
.IX Item "-l"
.PD 0
.IP "\fB\-\-line\-numbers\fR" 4
.IX Item "--line-numbers"
.PD
Label the display (using debugging information) with the filename and
source line numbers corresponding to the object code or relocs shown.
Only useful with \fB\-d\fR, \fB\-D\fR, or \fB\-r\fR.
.IP "\fB\-m\fR \fImachine\fR" 4
.IX Item "-m machine"
.PD 0
.IP "\fB\-\-architecture=\fR\fImachine\fR" 4
.IX Item "--architecture=machine"
.PD
Specify the architecture to use when disassembling object files. This
can be useful when disassembling object files which do not describe
architecture information, such as S\-records. You can list the available
architectures with the \fB\-i\fR option.
.Sp
If the target is an \s-1ARM\s0 architecture then this switch has an
additional effect. It restricts the disassembly to only those
instructions supported by the architecture specified by \fImachine\fR.
If it is necessary to use this switch because the input file does not
contain any architecture information, but it is also desired to
disassemble all the instructions use \fB\-marm\fR.
.IP "\fB\-M\fR \fIoptions\fR" 4
.IX Item "-M options"
.PD 0
.IP "\fB\-\-disassembler\-options=\fR\fIoptions\fR" 4
.IX Item "--disassembler-options=options"
.PD
Pass target specific information to the disassembler. Only supported on
some targets. If it is necessary to specify more than one
disassembler option then multiple \fB\-M\fR options can be used or
can be placed together into a comma separated list.
.Sp
If the target is an \s-1ARM\s0 architecture then this switch can be used to
select which register name set is used during disassembler. Specifying
\&\fB\-M reg-names-std\fR (the default) will select the register names as
used in \s-1ARM\s0's instruction set documentation, but with register 13 called
\&'sp', register 14 called 'lr' and register 15 called 'pc'. Specifying
\&\fB\-M reg-names-apcs\fR will select the name set used by the \s-1ARM\s0
Procedure Call Standard, whilst specifying \fB\-M reg-names-raw\fR will
just use \fBr\fR followed by the register number.
.Sp
There are also two variants on the \s-1APCS\s0 register naming scheme enabled
by \fB\-M reg-names-atpcs\fR and \fB\-M reg-names-special-atpcs\fR which
use the ARM/Thumb Procedure Call Standard naming conventions. (Either
with the normal register names or the special register names).
.Sp
This option can also be used for \s-1ARM\s0 architectures to force the
disassembler to interpret all instructions as Thumb instructions by
using the switch \fB\-\-disassembler\-options=force\-thumb\fR. This can be
useful when attempting to disassemble thumb code produced by other
compilers.
.Sp
For the x86, some of the options duplicate functions of the \fB\-m\fR
switch, but allow finer grained control. Multiple selections from the
following may be specified as a comma separated string.
\&\fBx86\-64\fR, \fBi386\fR and \fBi8086\fR select disassembly for
the given architecture. \fBintel\fR and \fBatt\fR select between
intel syntax mode and \s-1AT&T\s0 syntax mode.
\&\fBintel-mnemonic\fR and \fBatt-mnemonic\fR select between
intel mnemonic mode and \s-1AT&T\s0 mnemonic mode. \fBintel-mnemonic\fR
implies \fBintel\fR and \fBatt-mnemonic\fR implies \fBatt\fR.
\&\fBaddr64\fR, \fBaddr32\fR,
\&\fBaddr16\fR, \fBdata32\fR and \fBdata16\fR specify the default
address size and operand size. These four options will be overridden if
\&\fBx86\-64\fR, \fBi386\fR or \fBi8086\fR appear later in the
option string. Lastly, \fBsuffix\fR, when in \s-1AT&T\s0 mode,
instructs the disassembler to print a mnemonic suffix even when the
suffix could be inferred by the operands.
.Sp
For PowerPC, \fBbooke\fR controls the disassembly of BookE
instructions. \fB32\fR and \fB64\fR select PowerPC and
PowerPC64 disassembly, respectively. \fBe300\fR selects
disassembly for the e300 family. \fB440\fR selects disassembly for
the PowerPC 440. \fBppcps\fR selects disassembly for the paired
single instructions of the \s-1PPC750CL\s0.
.Sp
For \s-1MIPS\s0, this option controls the printing of instruction mnemonic
names and register names in disassembled instructions. Multiple
selections from the following may be specified as a comma separated
string, and invalid options are ignored:
.RS 4
.ie n .IP """no\-aliases""" 4
.el .IP "\f(CWno\-aliases\fR" 4
.IX Item "no-aliases"
Print the 'raw' instruction mnemonic instead of some pseudo
instruction mnemonic. I.e., print 'daddu' or 'or' instead of 'move',
\&'sll' instead of 'nop', etc.
.ie n .IP """gpr\-names=\f(CIABI\f(CW""" 4
.el .IP "\f(CWgpr\-names=\f(CIABI\f(CW\fR" 4
.IX Item "gpr-names=ABI"
Print \s-1GPR\s0 (general-purpose register) names as appropriate
for the specified \s-1ABI\s0. By default, \s-1GPR\s0 names are selected according to
the \s-1ABI\s0 of the binary being disassembled.
.ie n .IP """fpr\-names=\f(CIABI\f(CW""" 4
.el .IP "\f(CWfpr\-names=\f(CIABI\f(CW\fR" 4
.IX Item "fpr-names=ABI"
Print \s-1FPR\s0 (floating-point register) names as
appropriate for the specified \s-1ABI\s0. By default, \s-1FPR\s0 numbers are printed
rather than names.
.ie n .IP """cp0\-names=\f(CIARCH\f(CW""" 4
.el .IP "\f(CWcp0\-names=\f(CIARCH\f(CW\fR" 4
.IX Item "cp0-names=ARCH"
Print \s-1CP0\s0 (system control coprocessor; coprocessor 0) register names
as appropriate for the \s-1CPU\s0 or architecture specified by
\&\fI\s-1ARCH\s0\fR. By default, \s-1CP0\s0 register names are selected according to
the architecture and \s-1CPU\s0 of the binary being disassembled.
.ie n .IP """hwr\-names=\f(CIARCH\f(CW""" 4
.el .IP "\f(CWhwr\-names=\f(CIARCH\f(CW\fR" 4
.IX Item "hwr-names=ARCH"
Print \s-1HWR\s0 (hardware register, used by the \f(CW\*(C`rdhwr\*(C'\fR instruction) names
as appropriate for the \s-1CPU\s0 or architecture specified by
\&\fI\s-1ARCH\s0\fR. By default, \s-1HWR\s0 names are selected according to
the architecture and \s-1CPU\s0 of the binary being disassembled.
.ie n .IP """reg\-names=\f(CIABI\f(CW""" 4
.el .IP "\f(CWreg\-names=\f(CIABI\f(CW\fR" 4
.IX Item "reg-names=ABI"
Print \s-1GPR\s0 and \s-1FPR\s0 names as appropriate for the selected \s-1ABI\s0.
.ie n .IP """reg\-names=\f(CIARCH\f(CW""" 4
.el .IP "\f(CWreg\-names=\f(CIARCH\f(CW\fR" 4
.IX Item "reg-names=ARCH"
Print CPU-specific register names (\s-1CP0\s0 register and \s-1HWR\s0 names)
as appropriate for the selected \s-1CPU\s0 or architecture.
.RE
.RS 4
.Sp
For any of the options listed above, \fI\s-1ABI\s0\fR or
\&\fI\s-1ARCH\s0\fR may be specified as \fBnumeric\fR to have numbers printed
rather than names, for the selected types of registers.
You can list the available values of \fI\s-1ABI\s0\fR and \fI\s-1ARCH\s0\fR using
the \fB\-\-help\fR option.
.Sp
For \s-1VAX\s0, you can specify function entry addresses with \fB\-M
entry:0xf00ba\fR. You can use this multiple times to properly
disassemble \s-1VAX\s0 binary files that don't contain symbol tables (like
\&\s-1ROM\s0 dumps). In these cases, the function entry mask would otherwise
be decoded as \s-1VAX\s0 instructions, which would probably lead the rest
of the function being wrongly disassembled.
.RE
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-private\-headers\fR" 4
.IX Item "--private-headers"
.PD
Print information that is specific to the object file format. The exact
information printed depends upon the object file format. For some
object file formats, no additional information is printed.
.IP "\fB\-P\fR \fIoptions\fR" 4
.IX Item "-P options"
.PD 0
.IP "\fB\-\-private=\fR\fIoptions\fR" 4
.IX Item "--private=options"
.PD
Print information that is specific to the object file format. The
argument \fIoptions\fR is a comma separated list that depends on the
format (the lists of options is displayed with the help).
.Sp
For \s-1XCOFF\s0, the available options are: \fBheader\fR, \fBaout\fR,
\&\fBsections\fR, \fBsyms\fR, \fBrelocs\fR, \fBlineno\fR,
\&\fBloader\fR, \fBexcept\fR, \fBtypchk\fR, \fBtraceback\fR
and \fBtoc\fR.
.IP "\fB\-r\fR" 4
.IX Item "-r"
.PD 0
.IP "\fB\-\-reloc\fR" 4
.IX Item "--reloc"
.PD
Print the relocation entries of the file. If used with \fB\-d\fR or
\&\fB\-D\fR, the relocations are printed interspersed with the
disassembly.
.IP "\fB\-R\fR" 4
.IX Item "-R"
.PD 0
.IP "\fB\-\-dynamic\-reloc\fR" 4
.IX Item "--dynamic-reloc"
.PD
Print the dynamic relocation entries of the file. This is only
meaningful for dynamic objects, such as certain types of shared
libraries. As for \fB\-r\fR, if used with \fB\-d\fR or
\&\fB\-D\fR, the relocations are printed interspersed with the
disassembly.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-full\-contents\fR" 4
.IX Item "--full-contents"
.PD
Display the full contents of any sections requested. By default all
non-empty sections are displayed.
.IP "\fB\-S\fR" 4
.IX Item "-S"
.PD 0
.IP "\fB\-\-source\fR" 4
.IX Item "--source"
.PD
Display source code intermixed with disassembly, if possible. Implies
\&\fB\-d\fR.
.IP "\fB\-\-prefix=\fR\fIprefix\fR" 4
.IX Item "--prefix=prefix"
Specify \fIprefix\fR to add to the absolute paths when used with
\&\fB\-S\fR.
.IP "\fB\-\-prefix\-strip=\fR\fIlevel\fR" 4
.IX Item "--prefix-strip=level"
Indicate how many initial directory names to strip off the hardwired
absolute paths. It has no effect without \fB\-\-prefix=\fR\fIprefix\fR.
.IP "\fB\-\-show\-raw\-insn\fR" 4
.IX Item "--show-raw-insn"
When disassembling instructions, print the instruction in hex as well as
in symbolic form. This is the default except when
\&\fB\-\-prefix\-addresses\fR is used.
.IP "\fB\-\-no\-show\-raw\-insn\fR" 4
.IX Item "--no-show-raw-insn"
When disassembling instructions, do not print the instruction bytes.
This is the default when \fB\-\-prefix\-addresses\fR is used.
.IP "\fB\-\-insn\-width=\fR\fIwidth\fR" 4
.IX Item "--insn-width=width"
Display \fIwidth\fR bytes on a single line when disassembling
instructions.
.IP "\fB\-W[lLiaprmfFsoRt]\fR" 4
.IX Item "-W[lLiaprmfFsoRt]"
.PD 0
.IP "\fB\-\-dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]\fR" 4
.IX Item "--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]"
.PD
Displays the contents of the debug sections in the file, if any are
present. If one of the optional letters or words follows the switch
then only data found in those specific sections will be dumped.
.Sp
Note that there is no single letter option to display the content of
trace sections or .gdb_index.
.Sp
Note: the output from the \fB=info\fR option can also be affected
by the options \fB\-\-dwarf\-depth\fR, the \fB\-\-dwarf\-start\fR and
the \fB\-\-dwarf\-check\fR.
.IP "\fB\-\-dwarf\-depth=\fR\fIn\fR" 4
.IX Item "--dwarf-depth=n"
Limit the dump of the \f(CW\*(C`.debug_info\*(C'\fR section to \fIn\fR children.
This is only useful with \fB\-\-dwarf=info\fR. The default is
to print all DIEs; the special value 0 for \fIn\fR will also have this
effect.
.Sp
With a non-zero value for \fIn\fR, DIEs at or deeper than \fIn\fR
levels will not be printed. The range for \fIn\fR is zero-based.
.IP "\fB\-\-dwarf\-start=\fR\fIn\fR" 4
.IX Item "--dwarf-start=n"
Print only DIEs beginning with the \s-1DIE\s0 numbered \fIn\fR. This is only
useful with \fB\-\-dwarf=info\fR.
.Sp
If specified, this option will suppress printing of any header
information and all DIEs before the \s-1DIE\s0 numbered \fIn\fR. Only
siblings and children of the specified \s-1DIE\s0 will be printed.
.Sp
This can be used in conjunction with \fB\-\-dwarf\-depth\fR.
.IP "\fB\-\-dwarf\-check\fR" 4
.IX Item "--dwarf-check"
Enable additional checks for consistency of Dwarf information.
.IP "\fB\-G\fR" 4
.IX Item "-G"
.PD 0
.IP "\fB\-\-stabs\fR" 4
.IX Item "--stabs"
.PD
Display the full contents of any sections requested. Display the
contents of the .stab and .stab.index and .stab.excl sections from an
\&\s-1ELF\s0 file. This is only useful on systems (such as Solaris 2.0) in which
\&\f(CW\*(C`.stab\*(C'\fR debugging symbol-table entries are carried in an \s-1ELF\s0
section. In most other file formats, debugging symbol-table entries are
interleaved with linkage symbols, and are visible in the \fB\-\-syms\fR
output.
.IP "\fB\-\-start\-address=\fR\fIaddress\fR" 4
.IX Item "--start-address=address"
Start displaying data at the specified address. This affects the output
of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
.IP "\fB\-\-stop\-address=\fR\fIaddress\fR" 4
.IX Item "--stop-address=address"
Stop displaying data at the specified address. This affects the output
of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
.IP "\fB\-t\fR" 4
.IX Item "-t"
.PD 0
.IP "\fB\-\-syms\fR" 4
.IX Item "--syms"
.PD
Print the symbol table entries of the file.
This is similar to the information provided by the \fBnm\fR program,
although the display format is different. The format of the output
depends upon the format of the file being dumped, but there are two main
types. One looks like this:
.Sp
.Vb 2
\& [ 4](sec 3)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .bss
\& [ 6](sec 1)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 fred
.Ve
.Sp
where the number inside the square brackets is the number of the entry
in the symbol table, the \fIsec\fR number is the section number, the
\&\fIfl\fR value are the symbol's flag bits, the \fIty\fR number is the
symbol's type, the \fIscl\fR number is the symbol's storage class and
the \fInx\fR value is the number of auxilary entries associated with
the symbol. The last two fields are the symbol's value and its name.
.Sp
The other common output format, usually seen with \s-1ELF\s0 based files,
looks like this:
.Sp
.Vb 2
\& 00000000 l d .bss 00000000 .bss
\& 00000000 g .text 00000000 fred
.Ve
.Sp
Here the first number is the symbol's value (sometimes refered to as
its address). The next field is actually a set of characters and
spaces indicating the flag bits that are set on the symbol. These
characters are described below. Next is the section with which the
symbol is associated or \fI*ABS*\fR if the section is absolute (ie
not connected with any section), or \fI*UND*\fR if the section is
referenced in the file being dumped, but not defined there.
.Sp
After the section name comes another field, a number, which for common
symbols is the alignment and for other symbol is the size. Finally
the symbol's name is displayed.
.Sp
The flag characters are divided into 7 groups as follows:
.RS 4
.ie n .IP """l""" 4
.el .IP "\f(CWl\fR" 4
.IX Item "l"
.PD 0
.ie n .IP """g""" 4
.el .IP "\f(CWg\fR" 4
.IX Item "g"
.ie n .IP """u""" 4
.el .IP "\f(CWu\fR" 4
.IX Item "u"
.ie n .IP """!""" 4
.el .IP "\f(CW!\fR" 4
.IX Item "!"
.PD
The symbol is a local (l), global (g), unique global (u), neither
global nor local (a space) or both global and local (!). A
symbol can be neither local or global for a variety of reasons, e.g.,
because it is used for debugging, but it is probably an indication of
a bug if it is ever both local and global. Unique global symbols are
a \s-1GNU\s0 extension to the standard set of \s-1ELF\s0 symbol bindings. For such
a symbol the dynamic linker will make sure that in the entire process
there is just one symbol with this name and type in use.
.ie n .IP """w""" 4
.el .IP "\f(CWw\fR" 4
.IX Item "w"
The symbol is weak (w) or strong (a space).
.ie n .IP """C""" 4
.el .IP "\f(CWC\fR" 4
.IX Item "C"
The symbol denotes a constructor (C) or an ordinary symbol (a space).
.ie n .IP """W""" 4
.el .IP "\f(CWW\fR" 4
.IX Item "W"
The symbol is a warning (W) or a normal symbol (a space). A warning
symbol's name is a message to be displayed if the symbol following the
warning symbol is ever referenced.
.ie n .IP """I""" 4
.el .IP "\f(CWI\fR" 4
.IX Item "I"
.PD 0
.ie n .IP """i""" 4
.el .IP "\f(CWi\fR" 4
.IX Item "i"
.PD
The symbol is an indirect reference to another symbol (I), a function
to be evaluated during reloc processing (i) or a normal symbol (a
space).
.ie n .IP """d""" 4
.el .IP "\f(CWd\fR" 4
.IX Item "d"
.PD 0
.ie n .IP """D""" 4
.el .IP "\f(CWD\fR" 4
.IX Item "D"
.PD
The symbol is a debugging symbol (d) or a dynamic symbol (D) or a
normal symbol (a space).
.ie n .IP """F""" 4
.el .IP "\f(CWF\fR" 4
.IX Item "F"
.PD 0
.ie n .IP """f""" 4
.el .IP "\f(CWf\fR" 4
.IX Item "f"
.ie n .IP """O""" 4
.el .IP "\f(CWO\fR" 4
.IX Item "O"
.PD
The symbol is the name of a function (F) or a file (f) or an object
(O) or just a normal symbol (a space).
.RE
.RS 4
.RE
.IP "\fB\-T\fR" 4
.IX Item "-T"
.PD 0
.IP "\fB\-\-dynamic\-syms\fR" 4
.IX Item "--dynamic-syms"
.PD
Print the dynamic symbol table entries of the file. This is only
meaningful for dynamic objects, such as certain types of shared
libraries. This is similar to the information provided by the \fBnm\fR
program when given the \fB\-D\fR (\fB\-\-dynamic\fR) option.
.IP "\fB\-\-special\-syms\fR" 4
.IX Item "--special-syms"
When displaying symbols include those which the target considers to be
special in some way and which would not normally be of interest to the
user.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Print the version number of \fBobjdump\fR and exit.
.IP "\fB\-x\fR" 4
.IX Item "-x"
.PD 0
.IP "\fB\-\-all\-headers\fR" 4
.IX Item "--all-headers"
.PD
Display all available header information, including the symbol table and
relocation entries. Using \fB\-x\fR is equivalent to specifying all of
\&\fB\-a \-f \-h \-p \-r \-t\fR.
.IP "\fB\-w\fR" 4
.IX Item "-w"
.PD 0
.IP "\fB\-\-wide\fR" 4
.IX Item "--wide"
.PD
Format some lines for output devices that have more than 80 columns.
Also do not truncate symbol names when they are displayed.
.IP "\fB\-z\fR" 4
.IX Item "-z"
.PD 0
.IP "\fB\-\-disassemble\-zeroes\fR" 4
.IX Item "--disassemble-zeroes"
.PD
Normally the disassembly output will skip blocks of zeroes. This
option directs the disassembler to disassemble those blocks, just like
any other data.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fInm\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,218 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "RANLIB 1"
.TH RANLIB 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
ranlib \- generate index to archive.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
ranlib [\fB\-\-plugin\fR \fIname\fR] [\fB\-DhHvVt\fR] \fIarchive\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBranlib\fR generates an index to the contents of an archive and
stores it in the archive. The index lists each symbol defined by a
member of an archive that is a relocatable object file.
.PP
You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index.
.PP
An archive with such an index speeds up linking to the library and
allows routines in the library to call each other without regard to
their placement in the archive.
.PP
The \s-1GNU\s0 \fBranlib\fR program is another form of \s-1GNU\s0 \fBar\fR; running
\&\fBranlib\fR is completely equivalent to executing \fBar \-s\fR.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-H\fR" 4
.IX Item "-H"
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Show usage information for \fBranlib\fR.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-V\fR" 4
.IX Item "-V"
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Show the version number of \fBranlib\fR.
.IP "\fB\-D\fR" 4
.IX Item "-D"
Operate in \fIdeterministic\fR mode. The symbol map archive member's
header will show zero for the \s-1UID\s0, \s-1GID\s0, and timestamp. When this
option is used, multiple runs will produce identical output files.
.Sp
This is the default unless \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR.
.IP "\fB\-t\fR" 4
.IX Item "-t"
Update the timestamp of the symbol map of an archive.
.IP "\fB\-U\fR" 4
.IX Item "-U"
Do \fInot\fR operate in \fIdeterministic\fR mode. This is the
inverse of the \fB\-D\fR option, above: the archive index will get
actual \s-1UID\s0, \s-1GID\s0, timestamp, and file mode values.
.Sp
This is the default unless \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIar\fR\|(1), \fInm\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,451 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "READELF 1"
.TH READELF 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
readelf \- Displays information about ELF files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
readelf [\fB\-a\fR|\fB\-\-all\fR]
[\fB\-h\fR|\fB\-\-file\-header\fR]
[\fB\-l\fR|\fB\-\-program\-headers\fR|\fB\-\-segments\fR]
[\fB\-S\fR|\fB\-\-section\-headers\fR|\fB\-\-sections\fR]
[\fB\-g\fR|\fB\-\-section\-groups\fR]
[\fB\-t\fR|\fB\-\-section\-details\fR]
[\fB\-e\fR|\fB\-\-headers\fR]
[\fB\-s\fR|\fB\-\-syms\fR|\fB\-\-symbols\fR]
[\fB\-\-dyn\-syms\fR]
[\fB\-n\fR|\fB\-\-notes\fR]
[\fB\-r\fR|\fB\-\-relocs\fR]
[\fB\-u\fR|\fB\-\-unwind\fR]
[\fB\-d\fR|\fB\-\-dynamic\fR]
[\fB\-V\fR|\fB\-\-version\-info\fR]
[\fB\-A\fR|\fB\-\-arch\-specific\fR]
[\fB\-D\fR|\fB\-\-use\-dynamic\fR]
[\fB\-x\fR <number or name>|\fB\-\-hex\-dump=\fR<number or name>]
[\fB\-p\fR <number or name>|\fB\-\-string\-dump=\fR<number or name>]
[\fB\-R\fR <number or name>|\fB\-\-relocated\-dump=\fR<number or name>]
[\fB\-c\fR|\fB\-\-archive\-index\fR]
[\fB\-w[lLiaprmfFsoRt]\fR|
\fB\-\-debug\-dump\fR[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]]
[\fB\-\-dwarf\-depth=\fR\fIn\fR]
[\fB\-\-dwarf\-start=\fR\fIn\fR]
[\fB\-I\fR|\fB\-\-histogram\fR]
[\fB\-v\fR|\fB\-\-version\fR]
[\fB\-W\fR|\fB\-\-wide\fR]
[\fB\-H\fR|\fB\-\-help\fR]
\fIelffile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBreadelf\fR displays information about one or more \s-1ELF\s0 format object
files. The options control what particular information to display.
.PP
\&\fIelffile\fR... are the object files to be examined. 32\-bit and
64\-bit \s-1ELF\s0 files are supported, as are archives containing \s-1ELF\s0 files.
.PP
This program performs a similar function to \fBobjdump\fR but it
goes into more detail and it exists independently of the \s-1BFD\s0
library, so if there is a bug in \s-1BFD\s0 then readelf will not be
affected.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent. At least one option besides \fB\-v\fR or \fB\-H\fR must be
given.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-all\fR" 4
.IX Item "--all"
.PD
Equivalent to specifying \fB\-\-file\-header\fR,
\&\fB\-\-program\-headers\fR, \fB\-\-sections\fR, \fB\-\-symbols\fR,
\&\fB\-\-relocs\fR, \fB\-\-dynamic\fR, \fB\-\-notes\fR and
\&\fB\-\-version\-info\fR.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-file\-header\fR" 4
.IX Item "--file-header"
.PD
Displays the information contained in the \s-1ELF\s0 header at the start of the
file.
.IP "\fB\-l\fR" 4
.IX Item "-l"
.PD 0
.IP "\fB\-\-program\-headers\fR" 4
.IX Item "--program-headers"
.IP "\fB\-\-segments\fR" 4
.IX Item "--segments"
.PD
Displays the information contained in the file's segment headers, if it
has any.
.IP "\fB\-S\fR" 4
.IX Item "-S"
.PD 0
.IP "\fB\-\-sections\fR" 4
.IX Item "--sections"
.IP "\fB\-\-section\-headers\fR" 4
.IX Item "--section-headers"
.PD
Displays the information contained in the file's section headers, if it
has any.
.IP "\fB\-g\fR" 4
.IX Item "-g"
.PD 0
.IP "\fB\-\-section\-groups\fR" 4
.IX Item "--section-groups"
.PD
Displays the information contained in the file's section groups, if it
has any.
.IP "\fB\-t\fR" 4
.IX Item "-t"
.PD 0
.IP "\fB\-\-section\-details\fR" 4
.IX Item "--section-details"
.PD
Displays the detailed section information. Implies \fB\-S\fR.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-symbols\fR" 4
.IX Item "--symbols"
.IP "\fB\-\-syms\fR" 4
.IX Item "--syms"
.PD
Displays the entries in symbol table section of the file, if it has one.
.IP "\fB\-\-dyn\-syms\fR" 4
.IX Item "--dyn-syms"
Displays the entries in dynamic symbol table section of the file, if it
has one.
.IP "\fB\-e\fR" 4
.IX Item "-e"
.PD 0
.IP "\fB\-\-headers\fR" 4
.IX Item "--headers"
.PD
Display all the headers in the file. Equivalent to \fB\-h \-l \-S\fR.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-notes\fR" 4
.IX Item "--notes"
.PD
Displays the contents of the \s-1NOTE\s0 segments and/or sections, if any.
.IP "\fB\-r\fR" 4
.IX Item "-r"
.PD 0
.IP "\fB\-\-relocs\fR" 4
.IX Item "--relocs"
.PD
Displays the contents of the file's relocation section, if it has one.
.IP "\fB\-u\fR" 4
.IX Item "-u"
.PD 0
.IP "\fB\-\-unwind\fR" 4
.IX Item "--unwind"
.PD
Displays the contents of the file's unwind section, if it has one. Only
the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files, as well as \s-1ARM\s0 unwind tables
(\f(CW\*(C`.ARM.exidx\*(C'\fR / \f(CW\*(C`.ARM.extab\*(C'\fR) are currently supported.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-dynamic\fR" 4
.IX Item "--dynamic"
.PD
Displays the contents of the file's dynamic section, if it has one.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\-info\fR" 4
.IX Item "--version-info"
.PD
Displays the contents of the version sections in the file, it they
exist.
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-\-arch\-specific\fR" 4
.IX Item "--arch-specific"
.PD
Displays architecture-specific information in the file, if there
is any.
.IP "\fB\-D\fR" 4
.IX Item "-D"
.PD 0
.IP "\fB\-\-use\-dynamic\fR" 4
.IX Item "--use-dynamic"
.PD
When displaying symbols, this option makes \fBreadelf\fR use the
symbol hash tables in the file's dynamic section, rather than the
symbol table sections.
.IP "\fB\-x <number or name>\fR" 4
.IX Item "-x <number or name>"
.PD 0
.IP "\fB\-\-hex\-dump=<number or name>\fR" 4
.IX Item "--hex-dump=<number or name>"
.PD
Displays the contents of the indicated section as a hexadecimal bytes.
A number identifies a particular section by index in the section table;
any other string identifies all sections with that name in the object file.
.IP "\fB\-R <number or name>\fR" 4
.IX Item "-R <number or name>"
.PD 0
.IP "\fB\-\-relocated\-dump=<number or name>\fR" 4
.IX Item "--relocated-dump=<number or name>"
.PD
Displays the contents of the indicated section as a hexadecimal
bytes. A number identifies a particular section by index in the
section table; any other string identifies all sections with that name
in the object file. The contents of the section will be relocated
before they are displayed.
.IP "\fB\-p <number or name>\fR" 4
.IX Item "-p <number or name>"
.PD 0
.IP "\fB\-\-string\-dump=<number or name>\fR" 4
.IX Item "--string-dump=<number or name>"
.PD
Displays the contents of the indicated section as printable strings.
A number identifies a particular section by index in the section table;
any other string identifies all sections with that name in the object file.
.IP "\fB\-c\fR" 4
.IX Item "-c"
.PD 0
.IP "\fB\-\-archive\-index\fR" 4
.IX Item "--archive-index"
.PD
Displays the file symbol index infomation contained in the header part
of binary archives. Performs the same function as the \fBt\fR
command to \fBar\fR, but without using the \s-1BFD\s0 library.
.IP "\fB\-w[lLiaprmfFsoRt]\fR" 4
.IX Item "-w[lLiaprmfFsoRt]"
.PD 0
.IP "\fB\-\-debug\-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]\fR" 4
.IX Item "--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]"
.PD
Displays the contents of the debug sections in the file, if any are
present. If one of the optional letters or words follows the switch
then only data found in those specific sections will be dumped.
.Sp
Note that there is no single letter option to display the content of
trace sections or .gdb_index.
.Sp
Note: the \fB=decodedline\fR option will display the interpreted
contents of a .debug_line section whereas the \fB=rawline\fR option
dumps the contents in a raw format.
.Sp
Note: the \fB=frames\-interp\fR option will display the interpreted
contents of a .debug_frame section whereas the \fB=frames\fR option
dumps the contents in a raw format.
.Sp
Note: the output from the \fB=info\fR option can also be affected
by the options \fB\-\-dwarf\-depth\fR and \fB\-\-dwarf\-start\fR.
.IP "\fB\-\-dwarf\-depth=\fR\fIn\fR" 4
.IX Item "--dwarf-depth=n"
Limit the dump of the \f(CW\*(C`.debug_info\*(C'\fR section to \fIn\fR children.
This is only useful with \fB\-\-debug\-dump=info\fR. The default is
to print all DIEs; the special value 0 for \fIn\fR will also have this
effect.
.Sp
With a non-zero value for \fIn\fR, DIEs at or deeper than \fIn\fR
levels will not be printed. The range for \fIn\fR is zero-based.
.IP "\fB\-\-dwarf\-start=\fR\fIn\fR" 4
.IX Item "--dwarf-start=n"
Print only DIEs beginning with the \s-1DIE\s0 numbered \fIn\fR. This is only
useful with \fB\-\-debug\-dump=info\fR.
.Sp
If specified, this option will suppress printing of any header
information and all DIEs before the \s-1DIE\s0 numbered \fIn\fR. Only
siblings and children of the specified \s-1DIE\s0 will be printed.
.Sp
This can be used in conjunction with \fB\-\-dwarf\-depth\fR.
.IP "\fB\-I\fR" 4
.IX Item "-I"
.PD 0
.IP "\fB\-\-histogram\fR" 4
.IX Item "--histogram"
.PD
Display a histogram of bucket list lengths when displaying the contents
of the symbol tables.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Display the version number of readelf.
.IP "\fB\-W\fR" 4
.IX Item "-W"
.PD 0
.IP "\fB\-\-wide\fR" 4
.IX Item "--wide"
.PD
Don't break output lines to fit into 80 columns. By default
\&\fBreadelf\fR breaks section header and segment listing lines for
64\-bit \s-1ELF\s0 files, so that they fit into 80 columns. This option causes
\&\fBreadelf\fR to print each section header resp. each segment one a
single line, which is far more readable on terminals wider than 80 columns.
.IP "\fB\-H\fR" 4
.IX Item "-H"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Display the command line options understood by \fBreadelf\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,269 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "SIZE 1"
.TH SIZE 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
size \- list section sizes and total size.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
size [\fB\-A\fR|\fB\-B\fR|\fB\-\-format=\fR\fIcompatibility\fR]
[\fB\-\-help\fR]
[\fB\-d\fR|\fB\-o\fR|\fB\-x\fR|\fB\-\-radix=\fR\fInumber\fR]
[\fB\-\-common\fR]
[\fB\-t\fR|\fB\-\-totals\fR]
[\fB\-\-target=\fR\fIbfdname\fR] [\fB\-V\fR|\fB\-\-version\fR]
[\fIobjfile\fR...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The \s-1GNU\s0 \fBsize\fR utility lists the section sizes\-\-\-and the total
size\-\-\-for each of the object or archive files \fIobjfile\fR in its
argument list. By default, one line of output is generated for each
object file or each module in an archive.
.PP
\&\fIobjfile\fR... are the object files to be examined.
If none are specified, the file \f(CW\*(C`a.out\*(C'\fR will be used.
.SH "OPTIONS"
.IX Header "OPTIONS"
The command line options have the following meanings:
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-B\fR" 4
.IX Item "-B"
.IP "\fB\-\-format=\fR\fIcompatibility\fR" 4
.IX Item "--format=compatibility"
.PD
Using one of these options, you can choose whether the output from \s-1GNU\s0
\&\fBsize\fR resembles output from System V \fBsize\fR (using \fB\-A\fR,
or \fB\-\-format=sysv\fR), or Berkeley \fBsize\fR (using \fB\-B\fR, or
\&\fB\-\-format=berkeley\fR). The default is the one-line format similar to
Berkeley's.
.Sp
Here is an example of the Berkeley (default) format of output from
\&\fBsize\fR:
.Sp
.Vb 4
\& $ size \-\-format=Berkeley ranlib size
\& text data bss dec hex filename
\& 294880 81920 11592 388392 5ed28 ranlib
\& 294880 81920 11888 388688 5ee50 size
.Ve
.Sp
This is the same data, but displayed closer to System V conventions:
.Sp
.Vb 7
\& $ size \-\-format=SysV ranlib size
\& ranlib :
\& section size addr
\& .text 294880 8192
\& .data 81920 303104
\& .bss 11592 385024
\& Total 388392
\&
\&
\& size :
\& section size addr
\& .text 294880 8192
\& .data 81920 303104
\& .bss 11888 385024
\& Total 388688
.Ve
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Show a summary of acceptable arguments and options.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-o\fR" 4
.IX Item "-o"
.IP "\fB\-x\fR" 4
.IX Item "-x"
.IP "\fB\-\-radix=\fR\fInumber\fR" 4
.IX Item "--radix=number"
.PD
Using one of these options, you can control whether the size of each
section is given in decimal (\fB\-d\fR, or \fB\-\-radix=10\fR); octal
(\fB\-o\fR, or \fB\-\-radix=8\fR); or hexadecimal (\fB\-x\fR, or
\&\fB\-\-radix=16\fR). In \fB\-\-radix=\fR\fInumber\fR, only the three
values (8, 10, 16) are supported. The total size is always given in two
radices; decimal and hexadecimal for \fB\-d\fR or \fB\-x\fR output, or
octal and hexadecimal if you're using \fB\-o\fR.
.IP "\fB\-\-common\fR" 4
.IX Item "--common"
Print total size of common symbols in each file. When using Berkeley
format these are included in the bss size.
.IP "\fB\-t\fR" 4
.IX Item "-t"
.PD 0
.IP "\fB\-\-totals\fR" 4
.IX Item "--totals"
.PD
Show totals of all objects listed (Berkeley format listing mode only).
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
Specify that the object-code format for \fIobjfile\fR is
\&\fIbfdname\fR. This option may not be necessary; \fBsize\fR can
automatically recognize many formats.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Display the version number of \fBsize\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,258 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "STRINGS 1"
.TH STRINGS 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
strings \- print the strings of printable characters in files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
strings [\fB\-afovV\fR] [\fB\-\fR\fImin-len\fR]
[\fB\-n\fR \fImin-len\fR] [\fB\-\-bytes=\fR\fImin-len\fR]
[\fB\-t\fR \fIradix\fR] [\fB\-\-radix=\fR\fIradix\fR]
[\fB\-e\fR \fIencoding\fR] [\fB\-\-encoding=\fR\fIencoding\fR]
[\fB\-\fR] [\fB\-\-all\fR] [\fB\-\-print\-file\-name\fR]
[\fB\-T\fR \fIbfdname\fR] [\fB\-\-target=\fR\fIbfdname\fR]
[\fB\-\-help\fR] [\fB\-\-version\fR] \fIfile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
For each \fIfile\fR given, \s-1GNU\s0 \fBstrings\fR prints the printable
character sequences that are at least 4 characters long (or the number
given with the options below) and are followed by an unprintable
character. By default, it only prints the strings from the initialized
and loaded sections of object files; for other types of files, it prints
the strings from the whole file.
.PP
\&\fBstrings\fR is mainly useful for determining the contents of non-text
files.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-all\fR" 4
.IX Item "--all"
.IP "\fB\-\fR" 4
.IX Item "-"
.PD
Do not scan only the initialized and loaded sections of object files;
scan the whole files.
.IP "\fB\-f\fR" 4
.IX Item "-f"
.PD 0
.IP "\fB\-\-print\-file\-name\fR" 4
.IX Item "--print-file-name"
.PD
Print the name of the file before each string.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Print a summary of the program usage on the standard output and exit.
.IP "\fB\-\fR\fImin-len\fR" 4
.IX Item "-min-len"
.PD 0
.IP "\fB\-n\fR \fImin-len\fR" 4
.IX Item "-n min-len"
.IP "\fB\-\-bytes=\fR\fImin-len\fR" 4
.IX Item "--bytes=min-len"
.PD
Print sequences of characters that are at least \fImin-len\fR characters
long, instead of the default 4.
.IP "\fB\-o\fR" 4
.IX Item "-o"
Like \fB\-t o\fR. Some other versions of \fBstrings\fR have \fB\-o\fR
act like \fB\-t d\fR instead. Since we can not be compatible with both
ways, we simply chose one.
.IP "\fB\-t\fR \fIradix\fR" 4
.IX Item "-t radix"
.PD 0
.IP "\fB\-\-radix=\fR\fIradix\fR" 4
.IX Item "--radix=radix"
.PD
Print the offset within the file before each string. The single
character argument specifies the radix of the offset\-\-\-\fBo\fR for
octal, \fBx\fR for hexadecimal, or \fBd\fR for decimal.
.IP "\fB\-e\fR \fIencoding\fR" 4
.IX Item "-e encoding"
.PD 0
.IP "\fB\-\-encoding=\fR\fIencoding\fR" 4
.IX Item "--encoding=encoding"
.PD
Select the character encoding of the strings that are to be found.
Possible values for \fIencoding\fR are: \fBs\fR = single\-7\-bit\-byte
characters (\s-1ASCII\s0, \s-1ISO\s0 8859, etc., default), \fBS\fR =
single\-8\-bit\-byte characters, \fBb\fR = 16\-bit bigendian, \fBl\fR =
16\-bit littleendian, \fBB\fR = 32\-bit bigendian, \fBL\fR = 32\-bit
littleendian. Useful for finding wide character strings. (\fBl\fR
and \fBb\fR apply to, for example, Unicode \s-1UTF\-16/UCS\-2\s0 encodings).
.IP "\fB\-T\fR \fIbfdname\fR" 4
.IX Item "-T bfdname"
.PD 0
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
.PD
Specify an object code format other than your system's default format.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-V\fR" 4
.IX Item "-V"
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Print the program version number on the standard output and exit.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIar\fR\|(1), \fInm\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), \fIreadelf\fR\|(1)
and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,428 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "STRIP 1"
.TH STRIP 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
strip \- Discard symbols from object files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
strip [\fB\-F\fR \fIbfdname\fR |\fB\-\-target=\fR\fIbfdname\fR]
[\fB\-I\fR \fIbfdname\fR |\fB\-\-input\-target=\fR\fIbfdname\fR]
[\fB\-O\fR \fIbfdname\fR |\fB\-\-output\-target=\fR\fIbfdname\fR]
[\fB\-s\fR|\fB\-\-strip\-all\fR]
[\fB\-S\fR|\fB\-g\fR|\fB\-d\fR|\fB\-\-strip\-debug\fR]
[\fB\-\-strip\-dwo\fR]
[\fB\-K\fR \fIsymbolname\fR |\fB\-\-keep\-symbol=\fR\fIsymbolname\fR]
[\fB\-N\fR \fIsymbolname\fR |\fB\-\-strip\-symbol=\fR\fIsymbolname\fR]
[\fB\-w\fR|\fB\-\-wildcard\fR]
[\fB\-x\fR|\fB\-\-discard\-all\fR] [\fB\-X\fR |\fB\-\-discard\-locals\fR]
[\fB\-R\fR \fIsectionname\fR |\fB\-\-remove\-section=\fR\fIsectionname\fR]
[\fB\-o\fR \fIfile\fR] [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
[\fB\-D\fR|\fB\-\-enable\-deterministic\-archives\fR]
[\fB\-U\fR|\fB\-\-disable\-deterministic\-archives\fR]
[\fB\-\-keep\-file\-symbols\fR]
[\fB\-\-only\-keep\-debug\fR]
[\fB\-v\fR |\fB\-\-verbose\fR] [\fB\-V\fR|\fB\-\-version\fR]
[\fB\-\-help\fR] [\fB\-\-info\fR]
\fIobjfile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\s-1GNU\s0 \fBstrip\fR discards all symbols from object files
\&\fIobjfile\fR. The list of object files may include archives.
At least one object file must be given.
.PP
\&\fBstrip\fR modifies the files named in its argument,
rather than writing modified copies under different names.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-F\fR \fIbfdname\fR" 4
.IX Item "-F bfdname"
.PD 0
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
.PD
Treat the original \fIobjfile\fR as a file with the object
code format \fIbfdname\fR, and rewrite it in the same format.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Show a summary of the options to \fBstrip\fR and exit.
.IP "\fB\-\-info\fR" 4
.IX Item "--info"
Display a list showing all architectures and object formats available.
.IP "\fB\-I\fR \fIbfdname\fR" 4
.IX Item "-I bfdname"
.PD 0
.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
.IX Item "--input-target=bfdname"
.PD
Treat the original \fIobjfile\fR as a file with the object
code format \fIbfdname\fR.
.IP "\fB\-O\fR \fIbfdname\fR" 4
.IX Item "-O bfdname"
.PD 0
.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
.IX Item "--output-target=bfdname"
.PD
Replace \fIobjfile\fR with a file in the output format \fIbfdname\fR.
.IP "\fB\-R\fR \fIsectionname\fR" 4
.IX Item "-R sectionname"
.PD 0
.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
.IX Item "--remove-section=sectionname"
.PD
Remove any section named \fIsectionname\fR from the output file. This
option may be given more than once. Note that using this option
inappropriately may make the output file unusable.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-strip\-all\fR" 4
.IX Item "--strip-all"
.PD
Remove all symbols.
.IP "\fB\-g\fR" 4
.IX Item "-g"
.PD 0
.IP "\fB\-S\fR" 4
.IX Item "-S"
.IP "\fB\-d\fR" 4
.IX Item "-d"
.IP "\fB\-\-strip\-debug\fR" 4
.IX Item "--strip-debug"
.PD
Remove debugging symbols only.
.IP "\fB\-\-strip\-dwo\fR" 4
.IX Item "--strip-dwo"
Remove the contents of all \s-1DWARF\s0 .dwo sections, leaving the
remaining debugging sections and all symbols intact.
See the description of this option in the \fBobjcopy\fR section
for more information.
.IP "\fB\-\-strip\-unneeded\fR" 4
.IX Item "--strip-unneeded"
Remove all symbols that are not needed for relocation processing.
.IP "\fB\-K\fR \fIsymbolname\fR" 4
.IX Item "-K symbolname"
.PD 0
.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--keep-symbol=symbolname"
.PD
When stripping symbols, keep symbol \fIsymbolname\fR even if it would
normally be stripped. This option may be given more than once.
.IP "\fB\-N\fR \fIsymbolname\fR" 4
.IX Item "-N symbolname"
.PD 0
.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--strip-symbol=symbolname"
.PD
Remove symbol \fIsymbolname\fR from the source file. This option may be
given more than once, and may be combined with strip options other than
\&\fB\-K\fR.
.IP "\fB\-o\fR \fIfile\fR" 4
.IX Item "-o file"
Put the stripped output in \fIfile\fR, rather than replacing the
existing file. When this argument is used, only one \fIobjfile\fR
argument may be specified.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-preserve\-dates\fR" 4
.IX Item "--preserve-dates"
.PD
Preserve the access and modification dates of the file.
.IP "\fB\-D\fR" 4
.IX Item "-D"
.PD 0
.IP "\fB\-\-enable\-deterministic\-archives\fR" 4
.IX Item "--enable-deterministic-archives"
.PD
Operate in \fIdeterministic\fR mode. When copying archive members
and writing the archive index, use zero for UIDs, GIDs, timestamps,
and use consistent file modes for all files.
.Sp
If \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by default.
It can be disabled with the \fB\-U\fR option, below.
.IP "\fB\-U\fR" 4
.IX Item "-U"
.PD 0
.IP "\fB\-\-disable\-deterministic\-archives\fR" 4
.IX Item "--disable-deterministic-archives"
.PD
Do \fInot\fR operate in \fIdeterministic\fR mode. This is the
inverse of the \fB\-D\fR option, above: when copying archive members
and writing the archive index, use their actual \s-1UID\s0, \s-1GID\s0, timestamp,
and file mode values.
.Sp
This is the default unless \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR.
.IP "\fB\-w\fR" 4
.IX Item "-w"
.PD 0
.IP "\fB\-\-wildcard\fR" 4
.IX Item "--wildcard"
.PD
Permit regular expressions in \fIsymbolname\fRs used in other command
line options. The question mark (?), asterisk (*), backslash (\e) and
square brackets ([]) operators can be used anywhere in the symbol
name. If the first character of the symbol name is the exclamation
point (!) then the sense of the switch is reversed for that symbol.
For example:
.Sp
.Vb 1
\& \-w \-K !foo \-K fo*
.Ve
.Sp
would cause strip to only keep symbols that start with the letters
\&\*(L"fo\*(R", but to discard the symbol \*(L"foo\*(R".
.IP "\fB\-x\fR" 4
.IX Item "-x"
.PD 0
.IP "\fB\-\-discard\-all\fR" 4
.IX Item "--discard-all"
.PD
Remove non-global symbols.
.IP "\fB\-X\fR" 4
.IX Item "-X"
.PD 0
.IP "\fB\-\-discard\-locals\fR" 4
.IX Item "--discard-locals"
.PD
Remove compiler-generated local symbols.
(These usually start with \fBL\fR or \fB.\fR.)
.IP "\fB\-\-keep\-file\-symbols\fR" 4
.IX Item "--keep-file-symbols"
When stripping a file, perhaps with \fB\-\-strip\-debug\fR or
\&\fB\-\-strip\-unneeded\fR, retain any symbols specifying source file names,
which would otherwise get stripped.
.IP "\fB\-\-only\-keep\-debug\fR" 4
.IX Item "--only-keep-debug"
Strip a file, removing contents of any sections that would not be
stripped by \fB\-\-strip\-debug\fR and leaving the debugging sections
intact. In \s-1ELF\s0 files, this preserves all note sections in the output.
.Sp
The intention is that this option will be used in conjunction with
\&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable. One a
stripped binary which will occupy less space in \s-1RAM\s0 and in a
distribution and the second a debugging information file which is only
needed if debugging abilities are required. The suggested procedure
to create these files is as follows:
.RS 4
.IP "1.<Link the executable as normal. Assuming that is is called>" 4
.IX Item "1.<Link the executable as normal. Assuming that is is called>"
\&\f(CW\*(C`foo\*(C'\fR then...
.ie n .IP "1.<Run ""objcopy \-\-only\-keep\-debug foo foo.dbg"" to>" 4
.el .IP "1.<Run \f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR to>" 4
.IX Item "1.<Run objcopy --only-keep-debug foo foo.dbg to>"
create a file containing the debugging info.
.ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"" to create a>" 4
.el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR to create a>" 4
.IX Item "1.<Run objcopy --strip-debug foo to create a>"
stripped executable.
.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.dbg foo"">" 4
.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR>" 4
.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.dbg foo>"
to add a link to the debugging info into the stripped executable.
.RE
.RS 4
.Sp
Note\-\-\-the choice of \f(CW\*(C`.dbg\*(C'\fR as an extension for the debug info
file is arbitrary. Also the \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR step is
optional. You could instead do this:
.IP "1.<Link the executable as normal.>" 4
.IX Item "1.<Link the executable as normal.>"
.PD 0
.ie n .IP "1.<Copy ""foo"" to ""foo.full"">" 4
.el .IP "1.<Copy \f(CWfoo\fR to \f(CWfoo.full\fR>" 4
.IX Item "1.<Copy foo to foo.full>"
.ie n .IP "1.<Run ""strip \-\-strip\-debug foo"">" 4
.el .IP "1.<Run \f(CWstrip \-\-strip\-debug foo\fR>" 4
.IX Item "1.<Run strip --strip-debug foo>"
.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.full foo"">" 4
.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR>" 4
.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.full foo>"
.RE
.RS 4
.PD
.Sp
i.e., the file pointed to by the \fB\-\-add\-gnu\-debuglink\fR can be the
full executable. It does not have to be a file created by the
\&\fB\-\-only\-keep\-debug\fR switch.
.Sp
Note\-\-\-this switch is only intended for use on fully linked files. It
does not make sense to use it on object files where the debugging
information may be incomplete. Besides the gnu_debuglink feature
currently only supports the presence of one filename containing
debugging information, not multiple filenames on a one-per-object-file
basis.
.RE
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Show the version number for \fBstrip\fR.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-verbose\fR" 4
.IX Item "--verbose"
.PD
Verbose output: list all object files modified. In the case of
archives, \fBstrip \-v\fR lists all members of the archive.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,354 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "WINDMC 1"
.TH WINDMC 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
windmc \- generates Windows message resources.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
windmc [options] input-file
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBwindmc\fR reads message definitions from an input file (.mc) and
translate them into a set of output files. The output files may be of
four kinds:
.ie n .IP """h""" 4
.el .IP "\f(CWh\fR" 4
.IX Item "h"
A C header file containing the message definitions.
.ie n .IP """rc""" 4
.el .IP "\f(CWrc\fR" 4
.IX Item "rc"
A resource file compilable by the \fBwindres\fR tool.
.ie n .IP """bin""" 4
.el .IP "\f(CWbin\fR" 4
.IX Item "bin"
One or more binary files containing the resource data for a specific
message language.
.ie n .IP """dbg""" 4
.el .IP "\f(CWdbg\fR" 4
.IX Item "dbg"
A C include file that maps message id's to their symbolic name.
.PP
The exact description of these different formats is available in
documentation from Microsoft.
.PP
When \fBwindmc\fR converts from the \f(CW\*(C`mc\*(C'\fR format to the \f(CW\*(C`bin\*(C'\fR
format, \f(CW\*(C`rc\*(C'\fR, \f(CW\*(C`h\*(C'\fR, and optional \f(CW\*(C`dbg\*(C'\fR it is acting like the
Windows Message Compiler.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-ascii_in\fR" 4
.IX Item "--ascii_in"
.PD
Specifies that the input file specified is \s-1ASCII\s0. This is the default
behaviour.
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-\-ascii_out\fR" 4
.IX Item "--ascii_out"
.PD
Specifies that messages in the output \f(CW\*(C`bin\*(C'\fR files should be in \s-1ASCII\s0
format.
.IP "\fB\-b\fR" 4
.IX Item "-b"
.PD 0
.IP "\fB\-\-binprefix\fR" 4
.IX Item "--binprefix"
.PD
Specifies that \f(CW\*(C`bin\*(C'\fR filenames should have to be prefixed by the
basename of the source file.
.IP "\fB\-c\fR" 4
.IX Item "-c"
.PD 0
.IP "\fB\-\-customflag\fR" 4
.IX Item "--customflag"
.PD
Sets the customer bit in all message id's.
.IP "\fB\-C\fR \fIcodepage\fR" 4
.IX Item "-C codepage"
.PD 0
.IP "\fB\-\-codepage_in\fR \fIcodepage\fR" 4
.IX Item "--codepage_in codepage"
.PD
Sets the default codepage to be used to convert input file to \s-1UTF16\s0. The
default is ocdepage 1252.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-decimal_values\fR" 4
.IX Item "--decimal_values"
.PD
Outputs the constants in the header file in decimal. Default is using
hexadecimal output.
.IP "\fB\-e\fR \fIext\fR" 4
.IX Item "-e ext"
.PD 0
.IP "\fB\-\-extension\fR \fIext\fR" 4
.IX Item "--extension ext"
.PD
The extension for the header file. The default is .h extension.
.IP "\fB\-F\fR \fItarget\fR" 4
.IX Item "-F target"
.PD 0
.IP "\fB\-\-target\fR \fItarget\fR" 4
.IX Item "--target target"
.PD
Specify the \s-1BFD\s0 format to use for a bin file as output. This
is a \s-1BFD\s0 target name; you can use the \fB\-\-help\fR option to see a list
of supported targets. Normally \fBwindmc\fR will use the default
format, which is the first one listed by the \fB\-\-help\fR option.
.IP "\fB\-h\fR \fIpath\fR" 4
.IX Item "-h path"
.PD 0
.IP "\fB\-\-headerdir\fR \fIpath\fR" 4
.IX Item "--headerdir path"
.PD
The target directory of the generated header file. The default is the
current directory.
.IP "\fB\-H\fR" 4
.IX Item "-H"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Displays a list of command line options and then exits.
.IP "\fB\-m\fR \fIcharacters\fR" 4
.IX Item "-m characters"
.PD 0
.IP "\fB\-\-maxlength\fR \fIcharacters\fR" 4
.IX Item "--maxlength characters"
.PD
Instructs \fBwindmc\fR to generate a warning if the length
of any message exceeds the number specified.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-nullterminate\fR" 4
.IX Item "--nullterminate"
.PD
Terminate message text in \f(CW\*(C`bin\*(C'\fR files by zero. By default they are
terminated by \s-1CR/LF\s0.
.IP "\fB\-o\fR" 4
.IX Item "-o"
.PD 0
.IP "\fB\-\-hresult_use\fR" 4
.IX Item "--hresult_use"
.PD
Not yet implemented. Instructs \f(CW\*(C`windmc\*(C'\fR to generate an \s-1OLE2\s0 header
file, using \s-1HRESULT\s0 definitions. Status codes are used if the flag is not
specified.
.IP "\fB\-O\fR \fIcodepage\fR" 4
.IX Item "-O codepage"
.PD 0
.IP "\fB\-\-codepage_out\fR \fIcodepage\fR" 4
.IX Item "--codepage_out codepage"
.PD
Sets the default codepage to be used to output text files. The default
is ocdepage 1252.
.IP "\fB\-r\fR \fIpath\fR" 4
.IX Item "-r path"
.PD 0
.IP "\fB\-\-rcdir\fR \fIpath\fR" 4
.IX Item "--rcdir path"
.PD
The target directory for the generated \f(CW\*(C`rc\*(C'\fR script and the generated
\&\f(CW\*(C`bin\*(C'\fR files that the resource compiler script includes. The default
is the current directory.
.IP "\fB\-u\fR" 4
.IX Item "-u"
.PD 0
.IP "\fB\-\-unicode_in\fR" 4
.IX Item "--unicode_in"
.PD
Specifies that the input file is \s-1UTF16\s0.
.IP "\fB\-U\fR" 4
.IX Item "-U"
.PD 0
.IP "\fB\-\-unicode_out\fR" 4
.IX Item "--unicode_out"
.PD
Specifies that messages in the output \f(CW\*(C`bin\*(C'\fR file should be in \s-1UTF16\s0
format. This is the default behaviour.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-verbose\fR" 4
.IX Item "--verbose"
.PD
Enable verbose mode.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Prints the version number for \fBwindmc\fR.
.IP "\fB\-x\fR \fIpath\fR" 4
.IX Item "-x path"
.PD 0
.IP "\fB\-\-xdgb\fR \fIpath\fR" 4
.IX Item "--xdgb path"
.PD
The path of the \f(CW\*(C`dbg\*(C'\fR C include file that maps message id's to the
symbolic name. No such file is generated without specifying the switch.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,362 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "WINDRES 1"
.TH WINDRES 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
windres \- manipulate Windows resources.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
windres [options] [input\-file] [output\-file]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBwindres\fR reads resources from an input file and copies them into
an output file. Either file may be in one of three formats:
.ie n .IP """rc""" 4
.el .IP "\f(CWrc\fR" 4
.IX Item "rc"
A text format read by the Resource Compiler.
.ie n .IP """res""" 4
.el .IP "\f(CWres\fR" 4
.IX Item "res"
A binary format generated by the Resource Compiler.
.ie n .IP """coff""" 4
.el .IP "\f(CWcoff\fR" 4
.IX Item "coff"
A \s-1COFF\s0 object or executable.
.PP
The exact description of these different formats is available in
documentation from Microsoft.
.PP
When \fBwindres\fR converts from the \f(CW\*(C`rc\*(C'\fR format to the \f(CW\*(C`res\*(C'\fR
format, it is acting like the Windows Resource Compiler. When
\&\fBwindres\fR converts from the \f(CW\*(C`res\*(C'\fR format to the \f(CW\*(C`coff\*(C'\fR
format, it is acting like the Windows \f(CW\*(C`CVTRES\*(C'\fR program.
.PP
When \fBwindres\fR generates an \f(CW\*(C`rc\*(C'\fR file, the output is similar
but not identical to the format expected for the input. When an input
\&\f(CW\*(C`rc\*(C'\fR file refers to an external filename, an output \f(CW\*(C`rc\*(C'\fR file
will instead include the file contents.
.PP
If the input or output format is not specified, \fBwindres\fR will
guess based on the file name, or, for the input file, the file contents.
A file with an extension of \fI.rc\fR will be treated as an \f(CW\*(C`rc\*(C'\fR
file, a file with an extension of \fI.res\fR will be treated as a
\&\f(CW\*(C`res\*(C'\fR file, and a file with an extension of \fI.o\fR or
\&\fI.exe\fR will be treated as a \f(CW\*(C`coff\*(C'\fR file.
.PP
If no output file is specified, \fBwindres\fR will print the resources
in \f(CW\*(C`rc\*(C'\fR format to standard output.
.PP
The normal use is for you to write an \f(CW\*(C`rc\*(C'\fR file, use \fBwindres\fR
to convert it to a \s-1COFF\s0 object file, and then link the \s-1COFF\s0 file into
your application. This will make the resources described in the
\&\f(CW\*(C`rc\*(C'\fR file available to Windows.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-i\fR \fIfilename\fR" 4
.IX Item "-i filename"
.PD 0
.IP "\fB\-\-input\fR \fIfilename\fR" 4
.IX Item "--input filename"
.PD
The name of the input file. If this option is not used, then
\&\fBwindres\fR will use the first non-option argument as the input file
name. If there are no non-option arguments, then \fBwindres\fR will
read from standard input. \fBwindres\fR can not read a \s-1COFF\s0 file from
standard input.
.IP "\fB\-o\fR \fIfilename\fR" 4
.IX Item "-o filename"
.PD 0
.IP "\fB\-\-output\fR \fIfilename\fR" 4
.IX Item "--output filename"
.PD
The name of the output file. If this option is not used, then
\&\fBwindres\fR will use the first non-option argument, after any used
for the input file name, as the output file name. If there is no
non-option argument, then \fBwindres\fR will write to standard output.
\&\fBwindres\fR can not write a \s-1COFF\s0 file to standard output. Note,
for compatibility with \fBrc\fR the option \fB\-fo\fR is also
accepted, but its use is not recommended.
.IP "\fB\-J\fR \fIformat\fR" 4
.IX Item "-J format"
.PD 0
.IP "\fB\-\-input\-format\fR \fIformat\fR" 4
.IX Item "--input-format format"
.PD
The input format to read. \fIformat\fR may be \fBres\fR, \fBrc\fR, or
\&\fBcoff\fR. If no input format is specified, \fBwindres\fR will
guess, as described above.
.IP "\fB\-O\fR \fIformat\fR" 4
.IX Item "-O format"
.PD 0
.IP "\fB\-\-output\-format\fR \fIformat\fR" 4
.IX Item "--output-format format"
.PD
The output format to generate. \fIformat\fR may be \fBres\fR,
\&\fBrc\fR, or \fBcoff\fR. If no output format is specified,
\&\fBwindres\fR will guess, as described above.
.IP "\fB\-F\fR \fItarget\fR" 4
.IX Item "-F target"
.PD 0
.IP "\fB\-\-target\fR \fItarget\fR" 4
.IX Item "--target target"
.PD
Specify the \s-1BFD\s0 format to use for a \s-1COFF\s0 file as input or output. This
is a \s-1BFD\s0 target name; you can use the \fB\-\-help\fR option to see a list
of supported targets. Normally \fBwindres\fR will use the default
format, which is the first one listed by the \fB\-\-help\fR option.
.IP "\fB\-\-preprocessor\fR \fIprogram\fR" 4
.IX Item "--preprocessor program"
When \fBwindres\fR reads an \f(CW\*(C`rc\*(C'\fR file, it runs it through the C
preprocessor first. This option may be used to specify the preprocessor
to use, including any leading arguments. The default preprocessor
argument is \f(CW\*(C`gcc \-E \-xc\-header \-DRC_INVOKED\*(C'\fR.
.IP "\fB\-\-preprocessor\-arg\fR \fIoption\fR" 4
.IX Item "--preprocessor-arg option"
When \fBwindres\fR reads an \f(CW\*(C`rc\*(C'\fR file, it runs it through
the C preprocessor first. This option may be used to specify additional
text to be passed to preprocessor on its command line.
This option can be used multiple times to add multiple options to the
preprocessor command line.
.IP "\fB\-I\fR \fIdirectory\fR" 4
.IX Item "-I directory"
.PD 0
.IP "\fB\-\-include\-dir\fR \fIdirectory\fR" 4
.IX Item "--include-dir directory"
.PD
Specify an include directory to use when reading an \f(CW\*(C`rc\*(C'\fR file.
\&\fBwindres\fR will pass this to the preprocessor as an \fB\-I\fR
option. \fBwindres\fR will also search this directory when looking for
files named in the \f(CW\*(C`rc\*(C'\fR file. If the argument passed to this command
matches any of the supported \fIformats\fR (as described in the \fB\-J\fR
option), it will issue a deprecation warning, and behave just like the
\&\fB\-J\fR option. New programs should not use this behaviour. If a
directory happens to match a \fIformat\fR, simple prefix it with \fB./\fR
to disable the backward compatibility.
.IP "\fB\-D\fR \fItarget\fR" 4
.IX Item "-D target"
.PD 0
.IP "\fB\-\-define\fR \fIsym\fR\fB[=\fR\fIval\fR\fB]\fR" 4
.IX Item "--define sym[=val]"
.PD
Specify a \fB\-D\fR option to pass to the preprocessor when reading an
\&\f(CW\*(C`rc\*(C'\fR file.
.IP "\fB\-U\fR \fItarget\fR" 4
.IX Item "-U target"
.PD 0
.IP "\fB\-\-undefine\fR \fIsym\fR" 4
.IX Item "--undefine sym"
.PD
Specify a \fB\-U\fR option to pass to the preprocessor when reading an
\&\f(CW\*(C`rc\*(C'\fR file.
.IP "\fB\-r\fR" 4
.IX Item "-r"
Ignored for compatibility with rc.
.IP "\fB\-v\fR" 4
.IX Item "-v"
Enable verbose mode. This tells you what the preprocessor is if you
didn't specify one.
.IP "\fB\-c\fR \fIval\fR" 4
.IX Item "-c val"
.PD 0
.IP "\fB\-\-codepage\fR \fIval\fR" 4
.IX Item "--codepage val"
.PD
Specify the default codepage to use when reading an \f(CW\*(C`rc\*(C'\fR file.
\&\fIval\fR should be a hexadecimal prefixed by \fB0x\fR or decimal
codepage code. The valid range is from zero up to 0xffff, but the
validity of the codepage is host and configuration dependent.
.IP "\fB\-l\fR \fIval\fR" 4
.IX Item "-l val"
.PD 0
.IP "\fB\-\-language\fR \fIval\fR" 4
.IX Item "--language val"
.PD
Specify the default language to use when reading an \f(CW\*(C`rc\*(C'\fR file.
\&\fIval\fR should be a hexadecimal language code. The low eight bits are
the language, and the high eight bits are the sublanguage.
.IP "\fB\-\-use\-temp\-file\fR" 4
.IX Item "--use-temp-file"
Use a temporary file to instead of using popen to read the output of
the preprocessor. Use this option if the popen implementation is buggy
on the host (eg., certain non-English language versions of Windows 95 and
Windows 98 are known to have buggy popen where the output will instead
go the console).
.IP "\fB\-\-no\-use\-temp\-file\fR" 4
.IX Item "--no-use-temp-file"
Use popen, not a temporary file, to read the output of the preprocessor.
This is the default behaviour.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Prints a usage summary.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Prints the version number for \fBwindres\fR.
.IP "\fB\-\-yydebug\fR" 4
.IX Item "--yydebug"
If \fBwindres\fR is compiled with \f(CW\*(C`YYDEBUG\*(C'\fR defined as \f(CW1\fR,
this will turn on parser debugging.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".