Hey Steve,

Great to see your name pop up on DTrace discuss!

>> Very interesting, but it looks like Apple is doing something cagey
>> with kernel symbols:
>>
> Oh my, I can see the headlines now "Apple cages DTrace"  :-}

Someday I'll make it up to you ;-)

> This appears to be a *BUG* in the shipping MacOS X 10.6.n.
> Please file a bug report through your usual channels.

Good to know it's a bug. My usual channels are to mail you and
James... what's channel that you'd like DTrace community members to
use?

> N.B., this is fixed in the WWDC build of Mac OS X 10.7:
>
> $ sudo dtrace -n BEGIN'{ trace(`dtrace_probe); }'
> Password:
> dtrace: description 'BEGIN' matched 1 probe
> CPU     ID                    FUNCTION:NAME
>  1      1                           :BEGIN  6215344901283465301

Awesome.

Steve, while we have you, can you explain why the dtrace_probes and
dtrace_nprobes variables aren't visible? Or are they also available on
10.7? I tried to write a version of the script that inferred the
location of dtrace_probes from disassembly of dtrace_probe(). Will
that work on 10.7?

---8<---

#!/usr/sbin/dtrace -s

#pragma D option quiet

int i;

tick-100
{
        /*
        this->p = `dtrace_probes
        */
        this->p = (dtrace_probe_t **)((uintptr_t)`dtrace_probe + 0x38 +
            0x003ba004);
        
        printf("%4d %10s %20s %20s %10s %s\n", i,
            stringof(this->p[i]->dtpr_provider->dtpv_name),
            stringof(this->p[i]->dtpr_mod),
            stringof(this->p[i]->dtpr_func),
            stringof(this->p[i]->dtpr_name),
            this->p[i]->dtpr_ecb != NULL ? "enabled" : "disabled");
        i++
}
---8<---

As always, thanks for your help. Glad to see that DTrace is still
kicking at Apple.

Adam

-- 
Adam Leventhal, Delphix
http://dtrace.org/blogs/ahl

275 Middlefield Road, Suite 50
Menlo Park, CA 94025
http://www.delphix.com
_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to