corrected: tapset/script information template

Vara Prasad prasadav@us.ibm.com
Fri Apr 29 22:04:00 GMT 2005


John Levon wrote:

>On Fri, Apr 29, 2005 at 03:24:20PM -0400, William Cohen wrote:
>
>  
>
>>* Associated files:
>>
>>  $dynamic_call_graph = 1; // turn on tracing of calls for thread
>>  $dynamic_call_graph = 0; // turn off tracing of calls for thread
>>    
>>
>
>I'm probably missing something, but how is this supposed to work? I want
>to be able to get call graphs under certain circumstances. It's not very
>useful to only be able to say "always collect call graphs for this
>thread", I need to be able to say "if this happens, and we reach this
>function, then insert a stack trace into the tracing stream".
>
>regards
>john
>
>  
>

Based on my discussion with Will yesterday our goal here is to support 
function tracing (Will correct me if i am wrong).  The main thing we are 
trying to achieve here is let us say with other means you narrowed down 
the problem to sys_open function now you want to know what are all the 
functions sys_open calls. User could then write a script like the following

probe.kernel.sys_open.entry()
{
   $dynamic_call_graph =1;
}

What you would see in the output would be something of this kind
call sys_open
     call getname
          call do_getname
           return do_getname
     return getname
     call get_unused_fd
         call find_next_zero_bit
         return find_next_zero_bit
     return get_unused_fd
     call filep_open
     return filep_open
       .....
return sys_open

The above probe could be customized to a particular process as well, 
like in the following
probe.kernel.sys_open.entry()
{
 if ($PID == 1234)
     $dynamic_call_graph =1;
}

Does this give you better idea of what it is supposed to do and will it 
meet your need?

bye,
Vara Prasad



More information about the Systemtap mailing list