pixie(1) — Commands
NAME
pixie − Adds profiling code to a program
SYNOPSIS
pixie program [options]
PARAMETERS
programName of the program executable to be profiled. This program should be compiled with the −g1, −g2, or −g3 flag to obtain more complete profiling information. If the default symbol table level (−g0) has been used, line number information, static procedure names, and file names are unavailable to the profiling code.
FLAGS
−[no]quiet
[Permits] or suppresses messages summarizing the binary-to-binary translation process. Default: −noquiet.
−bbaddrs name
Specify a name for the file of basic block addresses. Default is to remove any leading directory names from the program and append .Addrs.
−bbcounts name
Specifies the full filename of the basic block counts file. Default: program.Counts.
−[no]pids
[Disable] or enable the addition of the process-id number to the filename of the basic block counts file. This is useful for collecting information for multiple invocations of the pixie output file. Default: −nopids.
−o name
Specifies the name of the pixie-generated program. The default is to remove any leading directory names from the in_prog_name and append .pixie.
DESCRIPTION
The pixie utility reads an executable program, partitions it into basic blocks, and writes an equivalent program containing additional code that counts the execution of each basic block. (A basic block is a region of the program that can be entered only at the beginning and exited only at the end). The pixie utility also generates a file containing the address of each of the basic blocks.
When you run the pixie-generated program, it will (provided it terminates normally or via a call to exit(2)) generate a file containing the basic block counts. The name of the file is that of the original program with any leading directory names removed and .Counts appended. Programs that call fork() generate multiple basic block counts files, each with the process-id number appended to the name. The prof(1) and pixstats(1) utilities can analyze these files and produce a listing of profiling data.
RESTRICTIONS
The handler function address to the signal system calls is not translated, and so programs that receive signals will not work pixified.
Programs that call vfork will not work pixified because the child process will modify the parent state required for pixie operation. Use fork instead.
Pixified code is substantially larger than the original code. Conditional branches that used to fit in the 21-bit branch displacement field may no longer fit, generating a pixie error.
RELATED INFORMATION
Programmer’s Guide