Hi Adam,
here is my script:

#!/usr/sbin/dtrace -Zs
#pragma D option quiet
#pragma D option bufsize=20m
dvm$1:::method-entry
/dirname(copyinstr(arg0)) == "com/appsend"/
{
        self->func_name = 
strjoin(strjoin(basename(copyinstr(arg0)),"."),copyinstr(arg1));
        /[EMAIL 
PROTECTED](strjoin(basename(copyinstr(arg0)),"."),copyinstr(arg1))] = 
count();*/ 
        this->fdepth = 
++fdepth[strjoin(strjoin(basename(copyinstr(arg0)),"."),copyinstr(arg1))];      
 
        printf("-> %s\n", self->func_name);
        self->ts[self->func_name,this->fdepth] = vtimestamp;
}

dvm$1:::method-return
/self->ts[strjoin(strjoin(basename(copyinstr(arg0)),"."),copyinstr(arg1)),this->fdepth]/
{
    @funct_count[self->func_name] = count();
    printf("<- %s\n", self->func_name);
    self->ts[self->func_name,this->fdepth] = 0;   
}

END
{
  printf("\n%-30s %20s\n", "Function Name", "COUNT");
  printa("%-30s [EMAIL PROTECTED]",@funct_count);
}


Thanks for your reply,
Ajit


--
This message posted from opensolaris.org
_______________________________________________
dtrace-discuss mailing list
[email protected]

Reply via email to