This is the mail archive of the
systemtap@sources.redhat.com
mailing list for the systemtap project.
Re: architecture paper draft
- From: Martin Hunt <hunt at redhat dot com>
- To: William Cohen <wcohen at redhat dot com>
- Cc: "Frank Ch. Eigler" <fche at redhat dot com>, systemtap at sources dot redhat dot com
- Date: Fri, 28 Jan 2005 12:15:55 -0800
- Subject: Re: architecture paper draft
- Organization: Red Hat Inc.
- References: <20050127212504.GH22921@redhat.com> <41FA91B1.8070006@redhat.com>
>
> probe
> : probe_specifier body;
>
> probe_specifier
> : "probe" instrumentation_scheme
> ;
>
> instrumentation_scheme
> : systemtap
> | kernel_function_boundaries
> ;
>
> systemtap
> : /* What is run before the dynamic probes are inserted */
> "systemtap" "." "init"
> | /* What is run after the instrumentation is removed */
> "systemtap" "." "fini"
> ;
>
> kernel_function_boundary
> : "kernel" "." function_list
> ;
I have something very similar. However, I don't see a way in your
language to specify probe locations within a function. For example,
/* set a probe on function entry */
probe kernel.sys_write:entry { statements }
/* set a probe on function exit */
probe kernel.sys_write:exit { statements }
/* set a probe on a location define elsewhere (provider?) */
/* "my_location" could be a line number or address */
probe kernel.sys_write:my_location { statements }
--
I was also thinking of supporting something like
set my_func_list {
kernel.sys_write:entry
kernel.sys_open:entry
kernel.sys_read:entry
}
probe my_func_list { statements }