sotruss(1)




NAME

     sotruss - trace shared library procedure calls


SYNOPSIS

     /usr/bin/sotruss [-f] [-F bindfromlist]  [-T bindtolist]  [-
     o outputfile] executable [ executable arguments...]


DESCRIPTION

     sotruss executes the specified command and produces a  trace
     of  the  library  calls  that  it performs. Each line of the
     trace output reports what  bindings  are  occurring  between
     dynamic  objects as each procedure call is executed. sotruss
     traces all of the procedure calls that occur between dynamic
     objects  via the Procedure Linkage Table, so only those pro-
     cedure calls which are bound via the Procedure Linkage Table
     will be traced. See Linker and Libraries Guide


OPTIONS

     -F bindfromlist
           A colon-separated list of libraries  that  are  to  be
           traced.
            Only calls from these libraries will be traced.   The
           default  is  to  trace  calls from the main executable
           only.

     -T bindtolist
           A colon-separated list of libraries  that  are  to  be
           traced. Only calls to these libraries will be traced.
            The default is to trace all calls.

     -o outputfile
           sotruss output will be directed to the outputfile.  If
           this  option  is combined with the  -f option then the
           pid of the executing program will be placed at the end
           of  the  filename. By default sotruss output is placed
           on  stderr.

     -f    Follow all  children  created  by   fork()  and  print
           truss  output on each child process.  This option will
           also cause a  pid to be output on  each  truss  output
           line.


EXAMPLES

     Example 1: An example of sotruss.

     A simple example shows the tracing of a simple ls command:

     % sotruss ls | more
     ls            ->       libc.so.1:*atexit(0xef7d7d1c, 0x23c00, 0x0)
     ls            ->       libc.so.1:*atexit(0x1392c, 0xef7d7d1c, 0xef621bb0)
     ls            ->       libc.so.1:*setlocale(0x6, 0x1396c, 0xef621ba8)
     ls            ->       libc.so.1:*textdomain(0x13970, 0x1396c, 0xef621ba8)
     ls            ->       libc.so.1:*time(0x0, 0xef61f6fc, 0xef621ba8)
     ls            ->       libc.so.1:*isatty(0x1, 0xef61f6fc, 0x0)
     ls            ->       libc.so.1:*getopt(0x1, 0xeffff8fc, 0x13980)
     ls            ->       libc.so.1:*malloc(0x100, 0x0, 0x0)
     ls            ->       libc.so.1:*malloc(0x9000, 0x0, 0x0)
     ls            ->       libc.so.1:*lstat64(0x23ee8, 0xeffff7a0, 0x0)
     ...
     ls            ->       libc.so.1:*printf(0x13a64, 0x26208, 0x23ef0)
     ls            ->       libc.so.1:*printf(0x13a64, 0x26448, 0x23ef0)
     ls            ->       libc.so.1:*exit(0x0, 0x24220, 0x2421c)


ATTRIBUTES

     See attributes(5) for descriptions of the  following  attri-
     butes:

     ____________________________________________________________
    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
    |_____________________________|_____________________________|
    | Availability                | SUNWtoo                     |
    |_____________________________|_____________________________|


SEE ALSO

     ld.so.1(1), truss(1), whocalls(1), fork(2), attributes(5)

     Linker and Libraries Guide


Man(1) output converted with man2html