|
|
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.