> DTrace by itself is pretty lame. It needs providers to be interesting.
> By itself, it's a very limited interpreter that supports BEGIN and
> END, and a couple other tiny things (ERROR, maybe?). Devtrace would be
> analogous to the syscall provider for DTrace, from my understanding.
i may be misunderstanding you, but devtrace can trace any
call site or return in the kernel. not just system calls. and
not just entire functions; one could enable tracing on just
one return, for example.
you just give it a range of addresses and it loops through finding
the magic left by the linker. enabling a trace atomicly modifies
each site to turn on tracing.
> I'd estimate a finished version to be about the size of
> the Plan 9 kernel.
minooka; wc -l /sys/src/9/*/*trace*.[chs] /sys/src/libc/386/trace.s
118 /sys/src/9/pc/archtrace.c
18 /sys/src/9/pc/archtrace.h
578 /sys/src/9/port/devtrace.c
33 /sys/src/libc/386/trace.s
747 total
this stuff's ready to take off. (har har har.)
- erik