pixie(1) USER COMMANDS pixie(1)
NAME
pixie - add profiling code to a program
SYNOPSIS
pixie in_prog_name [ options ]
DESCRIPTION
Pixie reads an executable program, partitions it into basic
blocks, and writes an equivalent program containing addi-
tional 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).
Pixie 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. prof(1) and pix-
stats(1) can analyze these files and produce a listing of
profiling data.
-[no]quiet
[Permits] or suppresses messages summarizing the
binary-to-binary translation process. Default:
-noquiet.
-[no]branchcounts
-branchcounts inserts extra counters to track whether
each branch instruction is taken or not taken. When
this option is used, pixstats will automatically print
more statistics. Default: -nobranchcounts.
-[no]idtrace
[Disable] or enable tracing of instruction and data
memory references. -idtrace is equivalent to using
both -itrace and -dtrace together. Default: -noid-
trace
-[no]itrace
[Disable] or enable tracing of instruction memory
references. Default: -noitrace
-[no]dtrace
[Disable] or enable tracing of data memory references.
For the moment, -dtrace requires -itrace. Default:
-nodtrace
-idtracefile number
Specify a UNIX file descriptor number for the trace
output file. Default: 19.
1
pixie(1) USER COMMANDS pixie(1)
-bbaddrs name
Specify a name for the file of basic block addresses.
Default is to remove any leading directory names from
the in_prog_name and append ".Addrs".
-bbcounts name
Specifies the full filename of the basic block counts
file. Default: objfile.Counts.
-mips1
Use the MIPS1 instruction set (R2000, R3000) for output
executable. This is the default.
-mips2
Use the MIPS2 instruction set (a superset of MIPS1) for
output executable.
SEE ALSO
prof(1), pixstats(1).
The MIPS Languages Programmer's Guide.
BUGS
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 16-bit
branch displacement field may no longer fit, generating a
pixie error.
2