Unknown option: "-4" Unix manual page for trace. (host=minya system=Darwin)
TRACE(1)                  BSD General Commands Manual                 TRACE(1)

NAME
     trace -- configure, record, and display kernel trace events

SYNOPSIS
     trace -d [-a pid | -x pid]
     trace -e [-c class [-p end-class] [-s subclass]] [-a pid | -x pid]
              [-k code] [-P] [-T filter-file]
     trace -E [-c class [-p end-class] [-s subclass]] [-a pid | -x pid]
              [-k code] [-P] [-T tracefilter] command [argument ...]
     trace -h
     trace -i [-b num-events]
     trace -g
     trace -l rawfile
     trace -L rawfile [-S secs]
     trace -n
     trace -r
     trace -R rawfile [-X] [-F frequency] [-o outfile] [-N] [codesfile ...]
     trace -t [-o outfile] [-N] [codesfile ...]

DESCRIPTION
     trace initializes and configures the kernel trace subsystem.  Trace
     events can be recorded to an in-memory buffer or logged directly to a
     file, and optionally converted to a human-readable, plain-text format.

     trace operates according to the command flag specified.

COMMANDS
     -h      Print a succinct help message to stdout(4).

     -i [-b num-events]

             Initialize the kernel trace buffer.  This command is required
             before tracing.

             -b num-events
                     Set the number of events that can be stored in the kernel
                     trace buffer.  num-events is a decimal number of events.
                     The default (and minimum) value is 8192 event records per
                     logical CPU.  No more than half of available memory may
                     be used by trace buffers, though running with a buffer
                     this large is not recommended.

     -g      Print the current kernel trace buffer settings to stdout(4).

     -d [-a pid | -x pid]

             By default, disable collection of events.  This command does not
             remove the kernel trace buffer.

             -a pid  Disable event collection for the process identified by
                     pid.

             -x pid  Stop excluding pid from the trace.  This reenables event
                     collection of events for.  pid.

     -r      Remove the kernel trace buffer.

     -n      Disable ring buffer mode.  When set, the trace buffer will fill
             to capacity and then stop collecting events.  Ring buffer mode is
             sometimes called "head," "stop," or "no-wrap" mode.  By default,
             the trace buffer will wrap around, overwriting previous events.
             The default behavior is sometimes called windowed or wrap-around
             mode.

     -e [-c class [-p end-class] [-s subclass]] [-a pid | -x pid]
             [-k code ...] [-P] [-T filter-file]

             Enable collection of events.  By default, all events are col-
             lected.

             Options can be used to restrict collection to specific classes,
             class ranges, subclasses, and codes.  Classes and subclasses can
             be specified any number of times, but only 4 codes can be fil-
             tered at once.  Values can be specified in hex (0x...), decimal,
             or octal (0...).

             -c class
                Restrict collection to the events with the specified class.
                This option can be specified any number of times to collect
                events from more classes.

                -p end-class
                   Provide an ending class to restrict collection to events in
                   an inclusive range of classes between class and end-class.

                -s subclass
                   Restrict collection to the events with the specified
                   subclass.

             -a pid
                Restrict collection to to those events emitted by the process
                identified by pid.

             -x pid
                Exclude events emitted by the process identified by pid.

             -k code
                Restrict collection to events with the specified code.  This
                option can be specified up to 4 times, and applies to all
                classes being collected.

             -T filter-file
                Restrict collection to events specified in the provided
                filter-file.  See TRACEFILTER FORMAT for details.

             -P Restrict collection to PPT events.  This special collection of
                trace events provides insight into system performance.

     -E [-c class [-p end-class] [-s subclass]] [-a pid | -x pid]
             [-k code ...] [-P] [-T filter-file] command [args ...]

             Execute command with trace collection enabled for events emitted
             by the process.  See -e for more information.

     -t [-o outfile] [-N] [codesfile ...]

             Extract events from the kernel trace buffer and print them in a
             formatted, plain-text representation.  Additional code files can
             be specified to help trace find the names of unknown events.  For
             more information on the formatting process, see TRACE CODES
             FORMAT.

             -o outfile
                     Output the plain-text events to outfile.

             -N      Ignore the system-wide trace codes file when getting
                     names of events.  Additional trace codes files specified
                     will still be used.

     -l rawfile

             Empty the current kernel trace buffer into rawfile in a binary
             format.  If rawfile is -, the file will be written to stdout(4).

     -L rawfile -S seconds

             Copy the current trace buffer to rawfile and send all future
             trace events to rawfile.

             -S seconds
                     After seconds have elapsed, stop recording and exit.  If
                     rawfile is -, the file will be written to stdout(4).

     -R rawfile [-o outfile] [-N] [-F frequency] [-X] [codesfile ...]

             Read events from rawfile and print them in a human-readable for-
             mat.

             -F frequency
                If rawfile does not contain clock frequency information, it
                can be specified with -F.

             -X
                Force the binary format to be interpreted as 32-bit, as
                opposed to matching the width of the system running trace.

             See -t for additional options.

TRACE CODES FORMAT
     Event classes, subclasses, and codes are matched to names using a trace
     codes file.  Any events that cannot be matched will be referred to by
     their debugid in hex.

     The system-wide trace codes file is located at
     /usr/share/misc/trace.codes.  Additional files are typically stored in
     /usr/local/share/misc.

     A code file consists of a list of tracepoints, one per line, with the
     tracepoint's debugid (component, subclass, and code) in hex, followed by
     a tab, followed by the tracepoint's name.

     For instance, the MSC_mach_msg_trap tracepoint is defined by

           0x010c007c MSC_mach_msg_trap

     This describes the tracepoint with the following info:

           Name        MSC_mach_msg_trap
           Class       0x01                 (Mach events)
           Subclass    0x0c                 (Mach system calls)
           Code        0x007c               (msg_trap)

     See /usr/include/sys/kdebug.h for class and subclass values.

TRACEFILTER FORMAT
     A tracefilter description file consists of a list of class and subclass
     filters in hex, one per line, which are applied as if they were passed
     with -c and -s.  Pass -v to see what classes and subclasses are being
     set.

     Comment lines start with `#', class filter lines start with `C', and sub-
     class filter lines start with `S' and include the class they apply to.

     For example, to trace Mach events (class 1):

           C 0x01

     And to trace Mach system calls (class 1, subclass 13):

           S 0x010C

EXAMPLES
     trace usually requires multiple invocations in order to set up the trace
     buffers, enable the correct events, and collect the events.  A typical
     session with trace is:

           trace -i
           trace -e -c 1 -s 31
           sleep 1
           trace -d
           trace -t

     This initializes the trace buffers to their default values, enables the
     mach_msg_trap subclass of the MACH_SysCall class, waits for one second,
     then disables tracing and prints it to stdout(4).  This is useful for
     investigating isolated issues or gaining some understanding about a ker-
     nel subsystem.  If a specific execuable should be traced, with the events
     saved for later analysis, the sequence of commands would be:

           trace -i
           trace -E -c 0x4 ./my_prog
           trace -d
           trace -l tracefile
           trace -R tracefile

     This initializes the trace buffers, enables all events in the BSC_SysCall
     class and runs my_prog, disables tracing, collects events into tracefile,
     and finally prints those events out in a human-readable form.

CAVEATS
     Almost all trace command flags require superuser (root) privileges.

     After failures, the trace buffers usually need to be re-initialized.

DIAGNOSTICS
     The trace utility exits 0 on success, and >0 if an error occurs.

SEE ALSO
     trace(4), fs_usage(1), sc_usage(1), latency(1), top(1)

Mac OS X                         April 3, 2015                        Mac OS X