3 ms·
They differ quite significantly. dtrace uses probes - points where instrumentation can be installed to inspect the process as it runs. Since it requires these p
by rainforest 13y ago
They differ quite significantly. dtrace uses probes - points where instrumentation can be installed to inspect the process as it runs. Since it requires these probes to be defined, probes only come "for free" in kernel-space: e.g. tracing syscalls, pageins, that kind of thing. SystemTap offers similar functionality - userspace probes can be defined for it too.
Pin, on the other hand, dynamically rewrites the binary to inject instrumentation. This allows it to inject instrumentation code at a higher granularity (individual instructions). It's useful where the application might not define dtrace probes, or, for example on OSX, where the application has "opted out" of it to protect it from being screenshotted (a la iTunes).
Pin is more like a scripted debugger than an instrumentation tool.
- cwp 13y agoAh, very clear. Thank you.