Solaris commands for process management - apptrace

apptrace – this commend is used for tracing library calls

bash-3.2# apptrace man
-> man      -> libc.so.1:int atexit(int (*)() = 0xfefce738)
<- man      -> libc.so.1:atexit()
-> man      -> libc.so.1:int atexit(int (*)() = 0x8054eac)
<- man      -> libc.so.1:atexit()
-> man      -> libc.so.1:void __fpstart(void)
<- man      -> libc.so.1:__fpstart() = 0xfecd8754
-> man      -> libc.so.1:access(0x80559a4, 0x1, 0x8047608) ** NR
-> man      -> libc.so.1:char * setlocale(int = 0x6, const char * = 0x80559a0 "")
<- man      -> libc.so.1:setlocale() = 0xfec7c045
-> man      -> libc.so.1:char * setlocale(int = 0x5, const char * = 0x0 <NULL>)
<- man      -> libc.so.1:setlocale() = 0xfec7c045
-> man      -> libc.so.1:strcpy(0x80669e8, 0xfec7c045, 0x8047608) ** NR
-> man      -> libc.so.1:int strcmp(const char * = 0x805599c "C", const char * = 0x80669e8 "C")
<- man      -> libc.so.1:strcmp()
-> man      -> libc.so.1:char * textdomain(const char * = 0x8055988 "SUNW_OST_OSCMD")
<- man      -> libc.so.1:textdomain() = 0x80683e0
-> man      -> libc.so.1:strcpy(0x80665e8, 0x8055980, 0x8047608) ** NR
-> man      -> libc.so.1:char * getenv(const char * = 0x8054fe0 "MANPATH")
<- man      -> libc.so.1:getenv() = 0x80476d5
-> man      -> libc.so.1:strrchr(0x8047678, 0x2f, 0x8047608) ** NR
-> man      -> libc.so.1:int strcmp(const char * = 0x8047678 "man", const char * = 0x8054fd8 "apropos")
<- man      -> libc.so.1:strcmp() = 0xc
-> man      -> libc.so.1:int strcmp(const char * = 0x8047678 "man", const char * = 0x8055978 "whatis")
<- man      -> libc.so.1:strcmp() = 0xfffffff6
-> man      -> libc.so.1:int strcmp(const char * = 0x8047678 "man", const char * = 0x8055964 "catman")
<- man      -> libc.so.1:strcmp() = 0xa
-> man      -> libc.so.1:int getopt(int = 0x1, char *const * = 0x8047540, const char * = 0x8066420 "FfkrP:M:T:ts:lad")
<- man      -> libc.so.1:getopt() = 0xffffffff
-> man      -> libc.so.1:char * gettext(const char * = 0x8055858 "usage:        man [-] [-adFlrt] [-M path] [-T macro-package ] [ -s section ] name ...
        man [-M path] -k keyword ...
        man [-M path] -f file ...")
<- man      -> libc.so.1:gettext() = 0x8055858
-> man      -> libc.so.1:int fprintf(FILE * = 0x8067610, const char * = 0x8054f9c "%s
", void * = 0x8055858, ...)
usage:  man [-] [-adFlrt] [-M path] [-T macro-package ] [ -s section ] name ...
        man [-M path] -k keyword ...
        man [-M path] -f file ...
<- man      -> libc.so.1:fprintf() = 0x88
-> man      -> libc.so.1:exit(0x2, 0x8047608, 0x80474fc) ** NR


in the above example you can clearly see library calls like setlocale(), fprintf(), strcmp(), getenv(), etc. 

No comments:

Post a Comment

Compressed tar archive

There are some cases when you want to create compressed tar archive but you do not have enough disk space to keep original files and tar arc...