This is the mail archive of the systemtap@sources.redhat.com mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: architecture paper draft


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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]