term% cat index.txt LCOMP(1) General Commands Manual LCOMP(1)
NAME
lcomp, lprint - line-by-line profiler
SYNOPSIS
lcomp [options] ... file ...
lprint [options] [files]
DESCRIPTION
Lcomp is used in place of cc (1) or f77 (1) to insert instruction-
counting code into programs. It recognizes options whose initial let‐
ters are taken from the string ‘‘cwpDUIRdlNnz'', and accepts files
whose names end in ‘.c', ‘.f', ‘.s', or ‘.o'. From each source file it
derives a ‘.o' file and a ‘.sL' file which lprint uses to correlate
source lines with basic blocks. If the -c option is not present it
creates a.out. Each time the ‘a.out' file is run statistics are added
to a profiling file prof.out.
Lprint produces on the standard output a listing (in the style of
pr(1)) of the programs compiled by lcomp. Without arguments or files,
each line of the listing is preceded by the number of times it was exe‐
cuted, as determined from the data in prof.out. Lprint interprets the
following options.
-a Detailed listing of every machine instruction and how often it
was executed.
-b Attempts to indicate how often each basic block was executed.
-c Compress the prof.out file, which otherwise grows with every ex‐
ecution of a.out .
-f Print summary information by function: instruction executions,
number of invocations, source instructions, and number of in‐
structions never executed.
-i Before each line of source print the number of machine instruc‐
tions executed.
-p Before each line of source print the number of times the first
basic block in that line was executed.
-s Summarize the counts by source file: instruction exectuions,
source instructions, instructions never executed, basic block
executions, total number of source basic blocks, and how many
were never executed.
If any file names are given, the arguments "abip" apply only to them.
If no options are given, -p is assumed. Any combination of options is
allowed.
FILES
prof.out counts
*.sL for correlating with source
/usr/lib/bb finding basic blocks and inserting counting code
/usr/lib/nexit.o printing counts when ‘a.out' exits
SEE ALSO
cc(1), f77(1)
BUGS
A line in the source file may be in zero, one, or more basic blocks;
the count given in the listing corresponds to some particular choice of
the basic block to associate with the line.
Processing the output of yacc(1) without removing ‘#line' directives
will produce unsatisfactory results.
LCOMP(1)