This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Can't access argument of process marker
- From: fche at redhat dot com (Frank Ch. Eigler)
- To: Josh Stone <jistone at redhat dot com>
- Cc: wenji dot huang at oracle dot com, SystemTAP <systemtap at sources dot redhat dot com>
- Date: Fri, 25 Jun 2010 09:59:19 -0400
- Subject: Re: Can't access argument of process marker
- References: <4C2446F3.1020401@oracle.com> <4C244A58.1000204@redhat.com>
Josh Stone <jistone@redhat.com> writes:
> [...]
> sdt_kprobe_var_expanding_visitor::visit_defined_op - just calls the
> parent class... harmless, but unnecessary.
>
> sdt_uprobe_var_expanding_visitor::visit_defined_op - leaves the
> defined_op untouched, without checking its argument. This means later
> it expands to "undefined" --> 0.
> [...]
One piece of background that may help explain this is that some of the
sdt.h options did not encode the actual number of arguments into the
.probe metadata, so stap couldn't actually tell how many arguments
there are supposed to be. Perhaps this is why it was thought
appropriate to short-circuit @defined() there.
In any case, this shortage of metadata is fixed with SDT_V2, which
stap usually forces on for itself. The translator-side code may not
have caught up.
- FChE