components/gcc3/gcov.1
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Mon, 02 Sep 2013 10:35:16 -0700
changeset 1458 8df4250eb878
parent 246 0878f7720e3e
permissions -rw-r--r--
Close of build 30.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
246
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     1
.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     2
.\"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     3
.\" Standard preamble:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     4
.\" ========================================================================
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     5
.de Sh \" Subsection heading
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     6
.br
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     7
.if t .Sp
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     8
.ne 5
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
     9
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    10
\fB\\$1\fR
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    11
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    12
..
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    13
.de Sp \" Vertical space (when we can't use .PP)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    14
.if t .sp .5v
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    15
.if n .sp
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    16
..
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    17
.de Vb \" Begin verbatim text
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    18
.ft CW
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    19
.nf
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    20
.ne \\$1
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    21
..
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    22
.de Ve \" End verbatim text
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    23
.ft R
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    24
.fi
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    25
..
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    26
.\" Set up some character translations and predefined strings.  \*(-- will
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    27
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    28
.\" double quote, and \*(R" will give a right double quote.  | will give a
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    29
.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    30
.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    31
.\" expand to `' in nroff, nothing in troff, for use with C<>.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    32
.tr \(*W-|\(bv\*(Tr
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    33
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    34
.ie n \{\
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    35
.    ds -- \(*W-
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    36
.    ds PI pi
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    37
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    38
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    39
.    ds L" ""
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    40
.    ds R" ""
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    41
.    ds C` ""
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    42
.    ds C' ""
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    43
'br\}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    44
.el\{\
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    45
.    ds -- \|\(em\|
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    46
.    ds PI \(*p
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    47
.    ds L" ``
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    48
.    ds R" ''
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    49
'br\}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    50
.\"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    51
.\" If the F register is turned on, we'll generate index entries on stderr for
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    52
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    53
.\" entries marked with X<> in POD.  Of course, you'll have to process the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    54
.\" output yourself in some meaningful fashion.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    55
.if \nF \{\
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    56
.    de IX
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    57
.    tm Index:\\$1\t\\n%\t"\\$2"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    58
..
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    59
.    nr % 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    60
.    rr F
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    61
.\}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    62
.\"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    63
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    64
.\" way too many mistakes in technical documents.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    65
.hy 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    66
.if n .na
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    67
.\"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    68
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    69
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    70
.    \" fudge factors for nroff and troff
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    71
.if n \{\
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    72
.    ds #H 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    73
.    ds #V .8m
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    74
.    ds #F .3m
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    75
.    ds #[ \f1
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    76
.    ds #] \fP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    77
.\}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    78
.if t \{\
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    79
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    80
.    ds #V .6m
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    81
.    ds #F 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    82
.    ds #[ \&
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    83
.    ds #] \&
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    84
.\}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    85
.    \" simple accents for nroff and troff
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    86
.if n \{\
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    87
.    ds ' \&
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    88
.    ds ` \&
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    89
.    ds ^ \&
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    90
.    ds , \&
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    91
.    ds ~ ~
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    92
.    ds /
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    93
.\}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    94
.if t \{\
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    95
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    96
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    97
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    98
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
    99
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   100
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   101
.\}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   102
.    \" troff and (daisy-wheel) nroff accents
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   103
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   104
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   105
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   106
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   107
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   108
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   109
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   110
.ds ae a\h'-(\w'a'u*4/10)'e
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   111
.ds Ae A\h'-(\w'A'u*4/10)'E
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   112
.    \" corrections for vroff
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   113
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   114
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   115
.    \" for low resolution devices (crt and lpr)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   116
.if \n(.H>23 .if \n(.V>19 \
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   117
\{\
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   118
.    ds : e
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   119
.    ds 8 ss
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   120
.    ds o a
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   121
.    ds d- d\h'-1'\(ga
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   122
.    ds D- D\h'-1'\(hy
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   123
.    ds th \o'bp'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   124
.    ds Th \o'LP'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   125
.    ds ae ae
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   126
.    ds Ae AE
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   127
.\}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   128
.rm #[ #] #H #V #F C
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   129
.\" ========================================================================
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   130
.\"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   131
.IX Title "GCOV 1"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   132
.TH GCOV 1 "2004-11-05" "gcc-3.4.3" "GNU"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   133
.SH "NAME"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   134
gcov \- coverage testing tool
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   135
.SH "SYNOPSIS"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   136
.IX Header "SYNOPSIS"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   137
gcov [\fB\-v\fR|\fB\-\-version\fR] [\fB\-h\fR|\fB\-\-help\fR]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   138
     [\fB\-a\fR|\fB\-\-all\-blocks\fR]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   139
     [\fB\-b\fR|\fB\-\-branch\-probabilities\fR]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   140
     [\fB\-c\fR|\fB\-\-branch\-counts\fR]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   141
     [\fB\-n\fR|\fB\-\-no\-output\fR]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   142
     [\fB\-l\fR|\fB\-\-long\-file\-names\fR]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   143
     [\fB\-p\fR|\fB\-\-preserve\-paths\fR]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   144
     [\fB\-f\fR|\fB\-\-function\-summaries\fR]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   145
     [\fB\-o\fR|\fB\-\-object\-directory\fR \fIdirectory|file\fR] \fIsourcefile\fR
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   146
     [\fB\-u\fR|\fB\-\-unconditional\-branches\fR]
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   147
.SH "DESCRIPTION"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   148
.IX Header "DESCRIPTION"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   149
\&\fBgcov\fR is a test coverage program.  Use it in concert with \s-1GCC\s0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   150
to analyze your programs to help create more efficient, faster running
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   151
code and to discover untested parts of your program.  You can use
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   152
\&\fBgcov\fR as a profiling tool to help discover where your
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   153
optimization efforts will best affect your code.  You can also use
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   154
\&\fBgcov\fR along with the other profiling tool, \fBgprof\fR, to
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   155
assess which parts of your code use the greatest amount of computing
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   156
time.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   157
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   158
Profiling tools help you analyze your code's performance.  Using a
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   159
profiler such as \fBgcov\fR or \fBgprof\fR, you can find out some
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   160
basic performance statistics, such as:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   161
.IP "\(bu" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   162
how often each line of code executes
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   163
.IP "\(bu" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   164
what lines of code are actually executed
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   165
.IP "\(bu" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   166
how much computing time each section of code uses
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   167
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   168
Once you know these things about how your code works when compiled, you
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   169
can look at each module to see which modules should be optimized.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   170
\&\fBgcov\fR helps you determine where to work on optimization.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   171
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   172
Software developers also use coverage testing in concert with
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   173
testsuites, to make sure software is actually good enough for a release.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   174
Testsuites can verify that a program works as expected; a coverage
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   175
program tests to see how much of the program is exercised by the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   176
testsuite.  Developers can then determine what kinds of test cases need
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   177
to be added to the testsuites to create both better testing and a better
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   178
final product.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   179
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   180
You should compile your code without optimization if you plan to use
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   181
\&\fBgcov\fR because the optimization, by combining some lines of code
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   182
into one function, may not give you as much information as you need to
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   183
look for `hot spots' where the code is using a great deal of computer
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   184
time.  Likewise, because \fBgcov\fR accumulates statistics by line (at
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   185
the lowest resolution), it works best with a programming style that
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   186
places only one statement on each line.  If you use complicated macros
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   187
that expand to loops or to other control structures, the statistics are
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   188
less helpful\-\-\-they only report on the line where the macro call
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   189
appears.  If your complex macros behave like functions, you can replace
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   190
them with inline functions to solve this problem.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   191
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   192
\&\fBgcov\fR creates a logfile called \fI\fIsourcefile\fI.gcov\fR which
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   193
indicates how many times each line of a source file \fI\fIsourcefile\fI.c\fR
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   194
has executed.  You can use these logfiles along with \fBgprof\fR to aid
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   195
in fine-tuning the performance of your programs.  \fBgprof\fR gives
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   196
timing information you can use along with the information you get from
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   197
\&\fBgcov\fR.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   198
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   199
\&\fBgcov\fR works only on code compiled with \s-1GCC\s0.  It is not
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   200
compatible with any other profiling or test coverage mechanism.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   201
.SH "OPTIONS"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   202
.IX Header "OPTIONS"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   203
.IP "\fB\-h\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   204
.IX Item "-h"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   205
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   206
.IP "\fB\-\-help\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   207
.IX Item "--help"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   208
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   209
Display help about using \fBgcov\fR (on the standard output), and
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   210
exit without doing any further processing.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   211
.IP "\fB\-v\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   212
.IX Item "-v"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   213
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   214
.IP "\fB\-\-version\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   215
.IX Item "--version"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   216
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   217
Display the \fBgcov\fR version number (on the standard output),
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   218
and exit without doing any further processing.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   219
.IP "\fB\-a\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   220
.IX Item "-a"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   221
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   222
.IP "\fB\-\-all\-blocks\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   223
.IX Item "--all-blocks"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   224
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   225
Write individual execution counts for every basic block. Normally gcov
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   226
outputs execution counts only for the main blocks of a line. With this
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   227
option you can determine if blocks within a single line are not being
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   228
executed.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   229
.IP "\fB\-b\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   230
.IX Item "-b"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   231
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   232
.IP "\fB\-\-branch\-probabilities\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   233
.IX Item "--branch-probabilities"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   234
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   235
Write branch frequencies to the output file, and write branch summary
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   236
info to the standard output.  This option allows you to see how often
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   237
each branch in your program was taken. Unconditional branches will not
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   238
be shown, unless the \fB\-u\fR option is given.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   239
.IP "\fB\-c\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   240
.IX Item "-c"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   241
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   242
.IP "\fB\-\-branch\-counts\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   243
.IX Item "--branch-counts"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   244
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   245
Write branch frequencies as the number of branches taken, rather than
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   246
the percentage of branches taken.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   247
.IP "\fB\-n\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   248
.IX Item "-n"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   249
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   250
.IP "\fB\-\-no\-output\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   251
.IX Item "--no-output"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   252
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   253
Do not create the \fBgcov\fR output file.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   254
.IP "\fB\-l\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   255
.IX Item "-l"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   256
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   257
.IP "\fB\-\-long\-file\-names\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   258
.IX Item "--long-file-names"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   259
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   260
Create long file names for included source files.  For example, if the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   261
header file \fIx.h\fR contains code, and was included in the file
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   262
\&\fIa.c\fR, then running \fBgcov\fR on the file \fIa.c\fR will produce
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   263
an output file called \fIa.c##x.h.gcov\fR instead of \fIx.h.gcov\fR.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   264
This can be useful if \fIx.h\fR is included in multiple source
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   265
files. If you uses the \fB\-p\fR option, both the including and
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   266
included file names will be complete path names.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   267
.IP "\fB\-p\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   268
.IX Item "-p"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   269
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   270
.IP "\fB\-\-preserve\-paths\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   271
.IX Item "--preserve-paths"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   272
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   273
Preserve complete path information in the names of generated
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   274
\&\fI.gcov\fR files. Without this option, just the filename component is
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   275
used. With this option, all directories are used, with '/' characters
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   276
translated to '#' characters, '.' directory components removed and '..'
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   277
components renamed to '^'. This is useful if sourcefiles are in several
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   278
different directories. It also affects the \fB\-l\fR option.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   279
.IP "\fB\-f\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   280
.IX Item "-f"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   281
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   282
.IP "\fB\-\-function\-summaries\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   283
.IX Item "--function-summaries"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   284
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   285
Output summaries for each function in addition to the file level summary.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   286
.IP "\fB\-o\fR \fIdirectory|file\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   287
.IX Item "-o directory|file"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   288
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   289
.IP "\fB\-\-object\-directory\fR \fIdirectory\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   290
.IX Item "--object-directory directory"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   291
.IP "\fB\-\-object\-file\fR \fIfile\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   292
.IX Item "--object-file file"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   293
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   294
Specify either the directory containing the gcov data files, or the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   295
object path name. The \fI.gcno\fR, and
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   296
\&\fI.gcda\fR data files are searched for using this option. If a directory
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   297
is specified, the data files are in that directory and named after the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   298
source file name, without its extension. If a file is specified here,
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   299
the data files are named after that file, without its extension. If this
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   300
option is not supplied, it defaults to the current directory.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   301
.IP "\fB\-u\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   302
.IX Item "-u"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   303
.PD 0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   304
.IP "\fB\-\-unconditional\-branches\fR" 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   305
.IX Item "--unconditional-branches"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   306
.PD
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   307
When branch counts are given, include those of unconditional branches.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   308
Unconditional branches are normally not interesting.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   309
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   310
\&\fBgcov\fR should be run with the current directory the same as that
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   311
when you invoked the compiler. Otherwise it will not be able to locate
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   312
the source files. \fBgcov\fR produces files called
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   313
\&\fI\fImangledname\fI.gcov\fR in the current directory. These contain
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   314
the coverage information of the source file they correspond to.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   315
One \fI.gcov\fR file is produced for each source file containing code,
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   316
which was compiled to produce the data files. The \fImangledname\fR part
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   317
of the output file name is usually simply the source file name, but can
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   318
be something more complicated if the \fB\-l\fR or \fB\-p\fR options are
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   319
given. Refer to those options for details.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   320
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   321
The \fI.gcov\fR files contain the ':' separated fields along with
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   322
program source code. The format is
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   323
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   324
.Vb 1
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   325
\&        <execution_count>:<line_number>:<source line text>
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   326
.Ve
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   327
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   328
Additional block information may succeed each line, when requested by
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   329
command line option. The \fIexecution_count\fR is \fB\-\fR for lines
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   330
containing no code and \fB#####\fR for lines which were never
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   331
executed. Some lines of information at the start have \fIline_number\fR
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   332
of zero.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   333
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   334
When printing percentages, 0% and 100% are only printed when the values
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   335
are \fIexactly\fR 0% and 100% respectively. Other values which would
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   336
conventionally be rounded to 0% or 100% are instead printed as the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   337
nearest non-boundary value.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   338
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   339
When using \fBgcov\fR, you must first compile your program with two
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   340
special \s-1GCC\s0 options: \fB\-fprofile\-arcs \-ftest\-coverage\fR.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   341
This tells the compiler to generate additional information needed by
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   342
gcov (basically a flow graph of the program) and also includes
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   343
additional code in the object files for generating the extra profiling
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   344
information needed by gcov.  These additional files are placed in the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   345
directory where the object file is located.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   346
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   347
Running the program will cause profile output to be generated.  For each
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   348
source file compiled with \fB\-fprofile\-arcs\fR, an accompanying
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   349
\&\fI.gcda\fR file will be placed in the object file directory.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   350
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   351
Running \fBgcov\fR with your program's source file names as arguments
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   352
will now produce a listing of the code along with frequency of execution
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   353
for each line.  For example, if your program is called \fItmp.c\fR, this
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   354
is what you see when you use the basic \fBgcov\fR facility:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   355
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   356
.Vb 5
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   357
\&        $ gcc -fprofile-arcs -ftest-coverage tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   358
\&        $ a.out
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   359
\&        $ gcov tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   360
\&        90.00% of 10 source lines executed in file tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   361
\&        Creating tmp.c.gcov.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   362
.Ve
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   363
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   364
The file \fItmp.c.gcov\fR contains output from \fBgcov\fR.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   365
Here is a sample:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   366
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   367
.Vb 23
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   368
\&                -:    0:Source:tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   369
\&                -:    0:Graph:tmp.gcno
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   370
\&                -:    0:Data:tmp.gcda
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   371
\&                -:    0:Runs:1
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   372
\&                -:    0:Programs:1
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   373
\&                -:    1:#include <stdio.h>
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   374
\&                -:    2:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   375
\&                -:    3:int main (void)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   376
\&        function main called 1 returned 1 blocks executed 75%
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   377
\&                1:    4:{
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   378
\&                1:    5:  int i, total;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   379
\&                -:    6:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   380
\&                1:    7:  total = 0;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   381
\&                -:    8:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   382
\&               11:    9:  for (i = 0; i < 10; i++)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   383
\&               10:   10:    total += i;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   384
\&                -:   11:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   385
\&                1:   12:  if (total != 45)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   386
\&            #####:   13:    printf ("Failure\en");
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   387
\&                -:   14:  else
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   388
\&                1:   15:    printf ("Success\en");
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   389
\&                1:   16:  return 0;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   390
\&                -:   17:}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   391
.Ve
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   392
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   393
When you use the \fB\-a\fR option, you will get individual block
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   394
counts, and the output looks like this:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   395
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   396
.Vb 30
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   397
\&                -:    0:Source:tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   398
\&                -:    0:Graph:tmp.gcno
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   399
\&                -:    0:Data:tmp.gcda
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   400
\&                -:    0:Runs:1
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   401
\&                -:    0:Programs:1
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   402
\&                -:    1:#include <stdio.h>
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   403
\&                -:    2:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   404
\&                -:    3:int main (void)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   405
\&        function main called 1 returned 1 blocks executed 75%
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   406
\&                1:    4:{
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   407
\&                1:    4-block  0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   408
\&                1:    5:  int i, total;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   409
\&                -:    6:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   410
\&                1:    7:  total = 0;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   411
\&                -:    8:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   412
\&               11:    9:  for (i = 0; i < 10; i++)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   413
\&               11:    9-block  0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   414
\&               10:   10:    total += i;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   415
\&               10:   10-block  0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   416
\&                -:   11:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   417
\&                1:   12:  if (total != 45)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   418
\&                1:   12-block  0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   419
\&            #####:   13:    printf ("Failure\en");
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   420
\&            $$$$$:   13-block  0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   421
\&                -:   14:  else
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   422
\&                1:   15:    printf ("Success\en");
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   423
\&                1:   15-block  0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   424
\&                1:   16:  return 0;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   425
\&                1:   16-block  0
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   426
\&                -:   17:}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   427
.Ve
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   428
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   429
In this mode, each basic block is only shown on one line \*(-- the last
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   430
line of the block. A multi-line block will only contribute to the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   431
execution count of that last line, and other lines will not be shown
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   432
to contain code, unless previous blocks end on those lines.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   433
The total execution count of a line is shown and subsequent lines show
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   434
the execution counts for individual blocks that end on that line. After each
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   435
block, the branch and call counts of the block will be shown, if the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   436
\&\fB\-b\fR option is given.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   437
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   438
Because of the way \s-1GCC\s0 instruments calls, a call count can be shown
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   439
after a line with no individual blocks.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   440
As you can see, line 13 contains a basic block that was not executed.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   441
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   442
When you use the \fB\-b\fR option, your output looks like this:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   443
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   444
.Vb 6
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   445
\&        $ gcov -b tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   446
\&        90.00% of 10 source lines executed in file tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   447
\&        80.00% of 5 branches executed in file tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   448
\&        80.00% of 5 branches taken at least once in file tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   449
\&        50.00% of 2 calls executed in file tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   450
\&        Creating tmp.c.gcov.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   451
.Ve
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   452
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   453
Here is a sample of a resulting \fItmp.c.gcov\fR file:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   454
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   455
.Vb 29
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   456
\&                -:    0:Source:tmp.c
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   457
\&                -:    0:Graph:tmp.gcno
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   458
\&                -:    0:Data:tmp.gcda
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   459
\&                -:    0:Runs:1
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   460
\&                -:    0:Programs:1
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   461
\&                -:    1:#include <stdio.h>
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   462
\&                -:    2:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   463
\&                -:    3:int main (void)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   464
\&        function main called 1 returned 1 blocks executed 75%
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   465
\&                1:    4:{
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   466
\&                1:    5:  int i, total;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   467
\&                -:    6:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   468
\&                1:    7:  total = 0;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   469
\&                -:    8:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   470
\&               11:    9:  for (i = 0; i < 10; i++)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   471
\&        branch  0 taken 91% (fallthrough)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   472
\&        branch  1 taken 9%
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   473
\&               10:   10:    total += i;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   474
\&                -:   11:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   475
\&                1:   12:  if (total != 45)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   476
\&        branch  0 taken 0% (fallthrough)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   477
\&        branch  1 taken 100%
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   478
\&            #####:   13:    printf ("Failure\en");
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   479
\&        call    0 never executed
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   480
\&                -:   14:  else
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   481
\&                1:   15:    printf ("Success\en");
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   482
\&        call    0 called 1 returned 100%
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   483
\&                1:   16:  return 0;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   484
\&                -:   17:}
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   485
.Ve
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   486
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   487
For each basic block, a line is printed after the last line of the basic
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   488
block describing the branch or call that ends the basic block.  There can
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   489
be multiple branches and calls listed for a single source line if there
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   490
are multiple basic blocks that end on that line.  In this case, the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   491
branches and calls are each given a number.  There is no simple way to map
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   492
these branches and calls back to source constructs.  In general, though,
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   493
the lowest numbered branch or call will correspond to the leftmost construct
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   494
on the source line.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   495
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   496
For a branch, if it was executed at least once, then a percentage
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   497
indicating the number of times the branch was taken divided by the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   498
number of times the branch was executed will be printed.  Otherwise, the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   499
message ``never executed'' is printed.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   500
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   501
For a call, if it was executed at least once, then a percentage
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   502
indicating the number of times the call returned divided by the number
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   503
of times the call was executed will be printed.  This will usually be
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   504
100%, but may be less for functions call \f(CW\*(C`exit\*(C'\fR or \f(CW\*(C`longjmp\*(C'\fR,
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   505
and thus may not return every time they are called.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   506
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   507
The execution counts are cumulative.  If the example program were
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   508
executed again without removing the \fI.gcda\fR file, the count for the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   509
number of times each line in the source was executed would be added to
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   510
the results of the previous run(s).  This is potentially useful in
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   511
several ways.  For example, it could be used to accumulate data over a
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   512
number of program runs as part of a test verification suite, or to
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   513
provide more accurate long-term information over a large number of
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   514
program runs.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   515
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   516
The data in the \fI.gcda\fR files is saved immediately before the program
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   517
exits.  For each source file compiled with \fB\-fprofile\-arcs\fR, the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   518
profiling code first attempts to read in an existing \fI.gcda\fR file; if
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   519
the file doesn't match the executable (differing number of basic block
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   520
counts) it will ignore the contents of the file.  It then adds in the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   521
new execution counts and finally writes the data to the file.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   522
.Sh "Using \fBgcov\fP with \s-1GCC\s0 Optimization"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   523
.IX Subsection "Using gcov with GCC Optimization"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   524
If you plan to use \fBgcov\fR to help optimize your code, you must
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   525
first compile your program with two special \s-1GCC\s0 options:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   526
\&\fB\-fprofile\-arcs \-ftest\-coverage\fR.  Aside from that, you can use any
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   527
other \s-1GCC\s0 options; but if you want to prove that every single line
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   528
in your program was executed, you should not compile with optimization
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   529
at the same time.  On some machines the optimizer can eliminate some
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   530
simple code lines by combining them with other lines.  For example, code
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   531
like this:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   532
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   533
.Vb 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   534
\&        if (a != b)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   535
\&          c = 1;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   536
\&        else
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   537
\&          c = 0;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   538
.Ve
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   539
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   540
can be compiled into one instruction on some machines.  In this case,
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   541
there is no way for \fBgcov\fR to calculate separate execution counts
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   542
for each line because there isn't separate code for each line.  Hence
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   543
the \fBgcov\fR output looks like this if you compiled the program with
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   544
optimization:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   545
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   546
.Vb 4
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   547
\&              100:   12:if (a != b)
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   548
\&              100:   13:  c = 1;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   549
\&              100:   14:else
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   550
\&              100:   15:  c = 0;
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   551
.Ve
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   552
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   553
The output shows that this block of code, combined by optimization,
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   554
executed 100 times.  In one sense this result is correct, because there
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   555
was only one instruction representing all four of these lines.  However,
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   556
the output does not indicate how many times the result was 0 and how
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   557
many times the result was 1.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   558
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   559
Inlineable functions can create unexpected line counts.  Line counts are
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   560
shown for the source code of the inlineable function, but what is shown
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   561
depends on where the function is inlined, or if it is not inlined at all.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   562
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   563
If the function is not inlined, the compiler must emit an out of line
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   564
copy of the function, in any object file that needs it.  If
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   565
\&\fIfileA.o\fR and \fIfileB.o\fR both contain out of line bodies of a
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   566
particular inlineable function, they will also both contain coverage
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   567
counts for that function.  When \fIfileA.o\fR and \fIfileB.o\fR are
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   568
linked together, the linker will, on many systems, select one of those
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   569
out of line bodies for all calls to that function, and remove or ignore
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   570
the other.  Unfortunately, it will not remove the coverage counters for
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   571
the unused function body.  Hence when instrumented, all but one use of
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   572
that function will show zero counts.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   573
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   574
If the function is inlined in several places, the block structure in
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   575
each location might not be the same.  For instance, a condition might
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   576
now be calculable at compile time in some instances.  Because the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   577
coverage of all the uses of the inline function will be shown for the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   578
same source lines, the line counts themselves might seem inconsistent.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   579
.SH "SEE ALSO"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   580
.IX Header "SEE ALSO"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   581
\&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), \fIgcc\fR\|(1) and the Info entry for \fIgcc\fR.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   582
.SH "COPYRIGHT"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   583
.IX Header "COPYRIGHT"
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   584
Copyright (c) 1996, 1997, 1999, 2000, 2001, 2002, 2003
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   585
Free Software Foundation, Inc.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   586
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   587
Permission is granted to copy, distribute and/or modify this document
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   588
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.2 or
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   589
any later version published by the Free Software Foundation; with the
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   590
Invariant Sections being ``\s-1GNU\s0 General Public License'' and ``Funding
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   591
Free Software'', the Front-Cover texts being (a) (see below), and with
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   592
the Back-Cover Texts being (b) (see below).  A copy of the license is
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   593
included in the \fIgfdl\fR\|(7) man page.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   594
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   595
(a) The \s-1FSF\s0's Front-Cover Text is:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   596
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   597
.Vb 1
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   598
\&     A GNU Manual
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   599
.Ve
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   600
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   601
(b) The \s-1FSF\s0's Back-Cover Text is:
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   602
.PP
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   603
.Vb 3
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   604
\&     You have freedom to copy and modify this GNU Manual, like GNU
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   605
\&     software.  Copies published by the Free Software Foundation raise
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   606
\&     funds for GNU development.
0878f7720e3e 7024396 g++ link missing from /usr/gnu/bin
Norm Jacobs <Norm.Jacobs@Oracle.COM>
parents:
diff changeset
   607
.Ve