|
|
1.1 root 1: .TH LCOMP 1
2: .CT 1 debug_tune
3: .SH NAME
4: lcomp, lprint \(mi line-by-line profiler
5: .SH SYNOPSIS
6: .B lcomp
7: [
8: .I option ...
9: ]
10: .I file ...
11: .PP
12: .B lprint
13: [
14: .I option
15: ]
16: [
17: .I file ...
18: ]
19: .SH DESCRIPTION
20: .I Lcomp
21: is used in place of
22: .IR cc (1)
23: or
24: .IR f77 (1)
25: to insert instruction-counting code into programs.
26: It shares with those commands options
27: whose initial letters are taken from the string
28: .LR cwpDUIRdlNnz ,
29: and accepts files whose names end in
30: .BR .c ,
31: .BR .f ,
32: .BR .s ,
33: or
34: .BR .o .
35: From each source file it derives a
36: .B .o
37: file and a
38: .B .sL
39: file which
40: .I lprint
41: uses to correlate source lines with basic blocks.
42: .PP
43: Option
44: .B -C
45: declares that
46: .B .c
47: files (and
48: .B .o
49: files, if no source files are named)
50: are C++ files.
51: If the
52: .B -c
53: option is not present
54: .I lcomp
55: creates
56: .FR a.out .
57: Each time
58: .F a.out
59: is run statistics are added
60: to a profiling file
61: .FR prof.out .
62: .PP
63: .I Lprint
64: produces on the standard output a listing (in the style of
65: .IR pr (1))
66: of the programs compiled by
67: .I lcomp.
68: Without arguments or files,
69: each line of the listing is preceded by the number of times it was executed,
70: as determined from the data in
71: .FR prof.out .
72: .I Lprint
73: interprets the following options.
74: .TP
75: .B -a
76: Detailed listing of every machine instruction and how often it was executed.
77: .TP
78: .B -b
79: How often each basic block was executed.
80: .TP
81: .B -c
82: Compress the
83: .F prof.out
84: file, which otherwise grows with every execution of
85: .LR a.out .
86: .TP
87: .B -f
88: Print summary information by function: instruction executions, number of
89: invocations, source instructions, and number of instructions never executed.
90: .TP
91: .B -i
92: Before each line of source print the number of machine instructions executed.
93: .TP
94: .B -p
95: Before each line of source print the number of times the first basic block
96: in that line was executed.
97: .TP
98: .B -s
99: Summarize the counts by source file: instruction executions, source
100: instructions, instructions never executed, basic block executions, total
101: number of source basic blocks, and how many were never executed.
102: .PP
103: If any file names are given, the options
104: .L abip
105: apply only to them.
106: If no options are given,
107: .B -p
108: is assumed.
109: Any combination of options is allowed.
110: .SH FILES
111: .TF /usr/lib/nexit.o
112: .TP
113: .F prof.out
114: counts
115: .TP
116: .F *.sL
117: for correlating with source
118: .TP
119: .F /usr/lib/bb
120: for finding basic blocks and inserting counting code
121: .TP
122: .F /usr/lib/nexit.o
123: for printing counts when
124: .L a.out
125: exits
126: .SH "SEE ALSO"
127: .IR cc (1),
128: .IR f77 (1),
129: .IR prof (1)
130: .SH BUGS
131: A line in the source file may be in zero, one, or more basic
132: blocks;
133: the count given in the listing corresponds to some particular
134: choice of the basic block to associate with the line.
135: .br
136: Processing the output of
137: .IR yacc (1)
138: without removing
139: .L #line
140: directives will produce unsatisfactory results.
141: .br
142: Option
143: .B -C
144: masks an option of
145: .IR cc (1).
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.