PROBLEM: (HPAQ603X9) (PATCH ID: OSF520-592) ******** The prof utility's -testcoverage option will sometimes report bad source line number ranges. This problem will occur frequently for programs compiled from C++ sources and for C sources that include header files containing source instructions. This problem can only be detected by inspecting the output of a prof command such as: prof -pixie -testcoverage .Counts For programs susceptible to the prof bug, the output will report line ranges that don't match the source files. For example a line range may be reported that spans multiple procedures, or a line range may end at a line beyond the end of the file. The short example below illustrates the problem. % cat -n hello.c 1 main(){ 2 printf("Hello\n"); 3 } 4 5 notexecuted(){ 6 printf("Include some source below\n"); 7 #include "source.h" 8 } % cat -n source.h 1 printf("Line 1\n"); 2 printf("Line 2\n"); 3 4 5 printf("Line 5\n"); 6 printf("Line 6\n"); 7 printf("Line 7\n"); 8 9 10 printf("Line 10\n"); % cc -g hello.c % atom -tool pixie a.out % a.out.pixie % prof -pixie -testcoverage a.out a.out.Counts Profile listing generated Tue Jul 9 15:17:22 2002 with: prof -pixie -testcoverage a.out a.out.Counts ---------------------------------------------------------------------------- * -t[estcoverage] using basic-block counts; * * sorted alphabetically by procedure name; * * the compiler emitted code for these lines, but the code was unexecuted * ---------------------------------------------------------------------------- notexecuted (hello.c), line(s): 1-10 This example reports an unexecuted basic block in hello.c lines 1 through 10, but hello.c is only 8 lines long. When corrected, prof will report lines 5 through 8 in hello.c as unexecuted. The source.h line numbers will not be included in the results. PROBLEM: (94378(SPR) (PATCH ID: OSF520-755) ******** The problem corrected by this fix occurs when a performance tool writes a file on a Sierra Clusters (PFS) Parallel File System. Pixie, hiprof, and other Atom-based tools will report a generic error message: % pixie a.out pixie: info: instrumenting a.out ... atom: Error: A fatal error has occurred. This could be caused by a lack of space in /tmp, or an instrumentation code error. Check /tmp, or run atom with the -debug switch. pixie: error: exiting due to error instrumenting a.out A similar error will be seen in hiprof. For programs instrumented by pixie or hiprof on a non-PFS the error will occur as a SIGBUS signal if the instrumented program writes the .Counts or .hiout file on a PFS. If prof or gprof are used to merge .Counts files with the -merge option to a file on a PFS, the error will occur once again as a SIGBUS signal that terminates the program.