[prev in list] [next in list] [prev in thread] [next in thread] 

List:       opensolaris-dtrace-discuss
Subject:    Re: [dtrace-discuss] wildcarding USDT probes
From:       Mark Phalan <Mark.Phalan () Sun ! COM>
Date:       2010-04-27 15:42:28
Message-ID: 1272382948.4332.18.camel () phalan
[Download RAW message or body]

On Tue, 2010-04-27 at 11:37 -0400, Chad Mynhier wrote:
> On Tue, Apr 27, 2010 at 11:21 AM, Mark Phalan <Mark.Phalan@sun.com> wrote:
> > On Tue, 2010-04-27 at 11:14 -0400, Chad Mynhier wrote:
> >>
> >> The problem here is the wildcard and the use of args[].  DTrace has no
> >> way of knowing that every one of your wildcarded probes (including
> >> those that might not exist when you invoke DTrace)  has exactly the
> >> same argument types, so it bails.
> >
> > I guess I don't understand how it works but surely it should know it
> > from the provider.d file. How does it do it for the kernel - CTF data?
> 
> No, you have the same problem with kernel probes.  DTrace can get the
> type data via CTF, and it does for  the args[] array.  It's entirely
> possible that those probes matched by the wildcard have exactly the
> same number of types and arguments, in which case DTrace could simply
> verify that you're using args[0] correctly.  But DTrace has no way of
> knowing that some kernel module (or library, in the USDT case) that
> gets loaded later won't have different argument types.  In order to
> avoid the problem of running  a D script that becomes incorrect via a
> modload or dlopen(), DTrace flags the error at compile time.

Ok that makes sense.

> 
> >
> >>
> >> You'd need to use arg0 and explicitly cast it to the type you want.
> >
> > Yeah, but thats messy :(
> >
> 
> Your other option is not to use the wildcard but rather specify the
> probes individually. 

Yes, this is something I do already but its a little more verbose. I can
live with it though.


Thanks,

-M

_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic