You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Marc Slemko <ma...@znep.com> on 1998/08/20 05:35:27 UTC

cool: sotruss on solaris (fwd)

For anyone that isn't aware of the below...

I like that functionality.

---------- Forwarded message ----------
Date: Wed, 19 Aug 1998 19:38:10 -0700 (PDT)
From: Marc Slemko <ma...@go2net.com>
To: someoneorother@go2net.com,
Subject: cool: sotruss on solaris

it can trace the shared library calls.

eg.

a.out           ->       libc.so.1:*atexit(0xef7c8f64, 0x0, 0x0)
a.out           ->       libc.so.1:*atexit(0x11650, 0xef7c8f64, 0xef6250c8)
a.out           ->       libm.so.1:*sqrt(0x40100000, 0x0, 0x11400)
a.out           ->       libc.so.1:*exit(0x0, 0xeffffbf4, 0xeffffbfc)

and there is whocalls:

marcs@glurk:/tmp$ whocalls time date
time(0x219a4, 0xeffffc44, 0x115c0)
        date:main+0xf0
        date:_start+0xdc
Wed Aug 19 19:37:13 PDT 1998


And on solaris 2.7, there is a -u option to truss that lets you see normal
system calls, eg.:

close(3)                                        = 0
close(4)                                        = 0
munmap(0xFF390000, 8192)                        = 0-> _init(0x0, 0x1334c,
0xff333dd0, 0xff3318a8)
<- _init() = 0-> main(0x1, 0xffbefc74, 0xffbefc7c, 0x23800)
  -> gf(0x0, 0x0, 0x0, 0x0)
    -> sqrt(0x40000000, 0x0, 0x0, 0x0)
    <- sqrt() = 0x40000000
    -> sqrt(0x40350000, 0x0, 0x40000000, 0x0)
    <- sqrt() = 0x40350000
  <- gf() = 0
ioctl(1, TCGETA, 0xFFBEECE4)                    = 0
1.300000e+00
write(1, " 1 . 3 0 0 0 0 0 e + 0 0".., 13)      = 13
<- main() = 1
-> _fini(0x1, 0xff3dd9a8, 0xff3dd720, 0xff3dc8ec)
<- _fini() = 1
llseek(0, 0, SEEK_CUR)                          = 24630
_exit(1)