architecture paper draft

Martin Hunt hunt@redhat.com
Fri Jan 28 20:29:00 GMT 2005


> 
> 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 }





More information about the Systemtap mailing list