On Tue, Mar 24, 2009 at 9:31 PM, Robert Lor <Robert.Lor@sun.com> wrote:
>
> I think the is-enabled test will address the issues you encountered. I see a
> few alternative to fixing this:
Another option is to impose a policy that all arguments to probes must
be simple local variables -- no expressions.
I'm starting to think that would be the better option and more in tune
with the dtrace way. Introducing the _ENABLED check defeats the whole
performance aim of dtrace that when it's disabled it introduces no
overhead. But using the _ENABLED macro only sparsely risks missing
some expression somewhere which looks innocuous but isn't.
I wonder if there's a gcc extension that would let us check if a macro
parameter is a simple variable or expression. That would let us
enforce the polilcy strictly at build-time.
--
greg